Я работал над программой на C, чтобы подсчитать количество пробелов в предложении. Но мне не удалось заставить его работать правильно. Если я ввожу что-то вроде Привет мир 1234, как вы выход я получаю 3, когда выход ожидается 5.
Мой код:Код не работает, как ожидалось, в C
//Program to count number of words in a given Sentence
#include <stdio.h>
#include <string.h>
int main()
{
char sent[100];
char sentence[] = {' ', '\0'};
printf("\nEnter a sentence :\n");
gets(sent);
strcat(sentence, sent);
int l = strlen(sentence), i = 0, count = 0, countCh = 0;
printf("%d", l);
char ch, ch1;
for (i = 0; i < (l-1); i++)
{
ch = sentence[i];
if (ch == ' ')
{
ch1 = sentence[i+1];
if (((ch1 >= 'A') && (ch1 <= 'Z'))||((ch1 >= 'a') && (ch1 <= 'z')))
count++;
}
}
printf("\nNo of words is : %d", count);
return 0;
}
Я использовал ту же логику в Java, и это работал отлично. Может ли кто-нибудь объяснить, что происходит не так?
Почему 'java' ?????? –
никогда не используйте 'gets()', вместо этого используйте 'fgets()'. –
'strcat (предложение, отправлено);' Can not it. потому что «предложение» не является дополнительным пространством. Например, 'char sentence [102] = {'', '\ 0'};' – BLUEPIXY