我必须做这个练习,我真的很努力,但我不知道如何解决它。
它说我需要编写一个程序来分析字符串。它需要给出单词和数字的数量。
请注意,数字也是一个词。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;
}
我的输出需要是=
单词= 5 数字= 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++;
}
}