Вывести слова в строке, которые содержат больше 6 символов - C (СИ)
Формулировка задачи:
Привет. Пробывал использовать strlen для подсчета количества символов,но считывает всю длину строки. Пробывал сделать проверку условия на " " пробел. Помогите реализовать
for(int i=0,str[i]!="/0"; i++) if(str[i]==" ") p=i; for(int i=p+1,str[i]!="/0"; i++) //*тут слово записывается в другой массив*// if(strlen(str)>6) { puts(str);}
Решение задачи: «Вывести слова в строке, которые содержат больше 6 символов»
textual
Листинг программы
char strS[1000] = "wwwwwwwwwwwwwwwwww qwwe qdddddddcasc sdv 111111111111111111"; char strS1[100]; while(strrchr(strS,' ') != NULL) { strcpy(strS1, strrchr(strS,' ') + 1); strcpy(strrchr(strS,' '),"\0"); if(strlen(strS1) > 6) { printf("%s\n", strS1); } strcpy(strS1,"\0"); } if(strlen(strS) > 6) { printf("%s\n", strS); }
Объяснение кода листинга программы
- Объявлены две переменные: strS[1000] и strS1[100].
- В строку strS внесены данные:
wwwwwwwwwwwwwwwwww qwwe qdddddddcasc sdv 111111111111111111
. - В цикле while происходит поиск каждого слова в строке strS, используя функцию strrchr, которая ищет последнее вхождение пробела в строке.
- Каждое найденное слово копируется в строку strS1, начиная с первого символа после пробела, при этом в строку strS1 записывается символ '\0' в конце слова.
- Проверяется длина слова в strS1. Если она больше 6, то слово выводится на экран с помощью функции printf.
- После каждой итерации цикла while, в strS1 записывается символ '\0', чтобы очистить его для следующего слова.
- После окончания цикла while, проверяется длина строки strS. Если она больше 6, то строка выводится на экран с помощью функции printf.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д