-3
Я пытаюсь напечатать самое длинное слово в строке, но цикл не работает, я не мог найти решение для этого.Печать символа в строке c
char str[50];
int i = 0, count = 0, numOfWords = 0, place;
printf("Please enter a sentence: ");
gets(str);
while (str[i] != '\0') {
if (str[i] != ' ') {
numOfWords++;
if (str[i + 1] == ' ') {
if (numOfWords > count) {
count = numOfWords;
place = i + 1 - numOfWords;
numOfWords = 0;
}
}
}
i++;
}
puts(str);
printf("%d", count);
printf("The word is:\n");
for (i = place; i < numOfWords; i++)
printf("%c\n", str[i]);
getch();
Примечание: Не следует использовать 'получает()', который имеет неизбежный риск переполнения буфера. – MikeCAT
@MikeCAT Я тоже думал. 'gets()' является опасным. – AustinWBryan
Запустите его под отладчиком, шаг за шагом ... –