Найти слова, начинающиеся с заглавной буквы - C (СИ)
Формулировка задачи:
Всем доброго времени суток! Я вновь обращаюсь на ваш форум за поддержкой)
Задание можно прочитать в заголовке, а вот собственно, и сам код:
Как я понял, прога зацикливается и не выдает слова, написанные с заглавной буквы
Не могли бы вы подсказать, где я напортачил? Заранее спасибо.
#include<stdio.h>
#include<string.h>
void main()
{
char M[100];
int i,z;
i=0;
printf("\n Vvedite predlojenie:");
scanf("%s",M);
while(M[i]!='.')
{
if(M[i]>='A'&&M[i]<='Z')
{
while(M[i]!=' ')
{
printf("%c", M[i]);
i++;
}
printf("\n");
}
}
}Решение задачи: «Найти слова, начинающиеся с заглавной буквы»
textual
Листинг программы
int main()
{
char M[100];
int i;
i=0;
printf("\n Vvedite predlojenie:");
fgets(M, 100, stdin);
while(M[i] && M[i]!='.')
{
if(M[i]>='A'&&M[i]<='Z')
{
while(M[i] && M[i]!=' ')
{
printf("%c", M[i]);
i++;
}
printf("\n");
}
i++;
}
}
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы найти слова, начинающиеся с заглавной буквы. Вот список действий, которые выполняются в коде:
- Вводится предложение с помощью функции
fgets(). - Переменная
iинициализируется нулем. - Используя цикл
while, код проходит по предложению, проверяя каждый символ. - Если текущий символ является заглавной буквой (больше или равен 'A' и меньше 'Z'), то код начинает выделять слова, начинающиеся с этой буквы.
- Код продолжает выделять слова, пока не встретит пробел или конец строки.
- Каждое выделенное слово выводится на экран с помощью функции
printf(). - После завершения выделения слов, код выводит символ новой строки.
- Переменная
iувеличивается на единицу после каждой итерации циклаwhile, чтобы перейти к следующему символу в предложении. Список переменных и их значений:M- массив символов, в который вводится предложение. Значение этого массива устанавливается с помощью функцииfgets().i- переменная, используемая для индексации символов в массивеM. Начальное значениеiравно нулю.- Значение переменной
iувеличивается на единицу после каждой итерации циклаwhile.