Я должен сделать это упражнение, и я действительно стараюсь изо всех сил, но я не могу понять, как его решить.
В нем говорится, что мне нужно написать программу для анализа строки.И для этого нужно указать количество слов и цифр.
Обратите внимание, что число - это тоже слово.123 - это слово и число, но, например, 4HIMATE - это не число, а только слово.
Я дам свой код того, что я получил до сих пор
int main()
{
int size= 256;
char s[256]= "Hi 123 Peter 8hi hi8";
char space[]= " ";
int wordCount= 0;
int numberCount= 0;
strcat(s, space);
strlwr(s);
for(int i= 0; s[i]!='\0'; i++)
{
if(s[i+1]== ' ' && s[i]>96 && s[i]<123)
{
wordCount++;
}
if(s[i+1]== ' ' && s[i]>47 && s[i]<58)
{
wordCount++;
}
}
for (int j=0; j<size; j++)
{
if(s[j+1]== ' ' && s[j]>47 && s[j]<58)
{
numberCount++;
}
}
printf("Words= %d\n", wordCount);
printf("Numbers= %d", numberCount);
return 0;
}
Мой выводдолжно быть =
Words = 5 Numbers = 1
Но ошибка в числах, результат равен 2.
Я действительно не знаю, как это решить, поэтому мне нужна помощь.
Исправлено несколько ошибок (правка):
for(int i= 0; s[i]!='\0'; i++)
{
if(s[i+1]== ' ' && s[i]>'a' && s[i]<'z')
{
wordCount++;
}
if(s[i+1]== ' ' && s[i]>'0' && s[i]<'9')
{
wordCount++;
}
}
for (int j=0; s[j]!='\0'; j++)
{
if(s[j+1]== ' ' && s[j]>'0' && s[j]<'9')
{
numberCount++;
}
}