admin 管理员组

文章数量: 1086019

【番杰的问答笔记】输入英文句子,统计其中的单词个数

1. 问题

输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3,请看下下面的代码问题出在哪里?

#include <stdio.h>
#include <string.h>int main(void)
{int a,b,i,n;char str[100];gets(str);b=strlen(str);for(i=0;i<b;i++){if(str[i]==' '){n++;}printf("%d",n);return 0;} }

2. 回答

你的n在定义的时候没有赋值为0;
所以打印出来的值会是一个随机数;

另外后面的printf();和return 0;应该写在for循环的外面;

再另外,在打印n的值时需要加一;
就以输入“how are you”为例;这个字符串中只有两个‘ ’(空格),但是却有三个单词,单词数会比空格数多一,所以结果加一。

你的代码修改后:

#include <stdio.h>
#include <string.h>int main(void)
{int a,b,i,n = 0;  //赋初值 char str[100];gets(str);b=strlen(str);for(i=0;i<b;i++){if(str[i]==' '){n++;}}printf("%d\n",n+1);//加一return 0; 
}

我自己写的代码:

#include <stdio.h>
#include <string.h>int main(void)
{int n = 0,ch;printf("请输入字符串:");while((ch=getchar())!='\n'){if(ch == ' ')n++;   }printf("%d",n+1);return 0;        
}

本文标签: 番杰的问答笔记输入英文句子,统计其中的单词个数