15533617457 发表于 2020-10-12 19:38:24

单词统计代码这个哪里出问题了

#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 19:58:24

本帖最后由 遗憾只藏心底 于 2020-10-12 20:06 编辑

scanf %s 在输入时候,遇到空格符便终止输入了,例如 I am a boy. 实际读入只有I,可以利用while(scanf(“%s”,c)!=EOF)进行统计,同时注意英语文章中会有 单词,单词.单词这种形式,就是两个单词之间不仅仅靠空格分割。而且直接char *c,进行scanf是不安全的 错误的,因为这段指针指向的地址是未知的,应用malloc进行申请,或者直接使用char c进行操作。
页: [1]
查看完整版本: 单词统计代码这个哪里出问题了