单词统计代码这个哪里出问题了
#include<stdio.h>#include<string.h>
int main(void)
{
//初始化
char *c;
printf("输入数据");
scanf("%s",c);
int number=0;
//查找空格
for(int i=0;i<strlen(c);i++)
{
if(*(c+i)==' ')
{
number++;
}
printf("%d",number);
}
printf("一共有%d个单词",++number);
return 0;
} 本帖最后由 遗憾只藏心底 于 2020-10-12 20:06 编辑
scanf %s 在输入时候,遇到空格符便终止输入了,例如 I am a boy. 实际读入只有I,可以利用while(scanf(“%s”,c)!=EOF)进行统计,同时注意英语文章中会有 单词,单词.单词这种形式,就是两个单词之间不仅仅靠空格分割。而且直接char *c,进行scanf是不安全的 错误的,因为这段指针指向的地址是未知的,应用malloc进行申请,或者直接使用char c进行操作。
页:
[1]