C语言统计不同单词个数
#includestdlib.h
站在用户的角度思考问题,与客户深入沟通,找到巴林右旗网站设计与巴林右旗网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖巴林右旗地区。
#includestdio.h
int main() {
char s[100];
gets(s);
int i = 0, num = 0;
bool word = false;
while(s[i] != '\0‘) {
if(s[i] == ' ')
word = true;
else if(word)
num ++;
}
puts(s);
printf("%d", num);
return 0;
}
C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
#includebits/stdc++.h
usingnamespacestd;
intmain(){
chara;ints=1;
scanf("%c",a);
while(a!='.')
{
if(a==''||a==',')s++;
scanf("%c",a);
}
couts;
return0;
}
扩展资料
C语言统计文件中的字符数、单词数注意事项
1、空白字符(空格和tab缩进)不计入字符总数;
2、单词以空格为分隔;
3、不考虑一个单词在两行的情况;
4、限制每行的字符数不能超过1000。
5、每次从文件中读取一行,放到缓冲区buffer,然后遍历缓冲区,统计当前行的字符和单词数。fgets()函数用于从文件中读取一行或指定个数的字符。
C语言统计单词个数
Q:输入一串字符串,输出其中有多少个单词。
Eg:Good Wishes
A:
#include stdio.h#include string.h#define SIZE 20int main()
{ char str[SIZE]={'\0'}; int count=0;
printf("plz input the string\n");
gets(str);
puts(str); int length = strlen(str); for (int i=0;ilength;i++)
{
if(str[i]!=' ')
{ count++; while(str[i]!=' 'str[i]!='\0')
{
i++;
}
}
}
printf("%d\n",count); return 0;
}
‘\0’和‘0’的区别:
在c语言中,它们都是字符,都用对应的ASCII码来存储。例如第一个ASCII码,0,对应字符为(Null),就是 ‘\0’,即空字符。我们在c语言中判断一个字符串是否结束的标志就是看是否遇到‘\0’,如果遇到‘\0’,则表示字符串结束。字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,但是字符常量可以像整数一样在程序中参与相关运算。
扩展资料
字符串所有字符,如果当前字符不为空,单词数+1,再嵌套一个while循环,判断当前单词是否结束。
#include stdio.h
#include string.h
int count_words(char* s)
{
int len=strlen(s);
int count,i;
for(i=0;ilen;i++)
{
if(*(s+i)!=' '){ // 如果当前代码不为空
count++; //单词数+1
while(*(s+i)!=' ' ilen) //判断当前单词是否结束
i++;
}
}
return count;
}
int main()
{
char* a="i love you";
printf("%d",count_words(a));
}
C语言统计英语单词的个数
C语言:统计输入的一行英文句子中的字母及单词个数,带注解!
//通过键盘输入一行英文句子,统计其中的英文字母和单词的数量,单词之间用空格分开(标点符号不算单词);
#includestdio.h
#includestring.h
#includestdlib.h
main()
{
char string[100];//根据拟从键盘输入的字串的长度需要适当调整,要避免输入的长度超出设定的范围。
char c;
int i, num=0,sum=0,word=0; //定义 word 用来指示一个单词是不是结束或新单词是否开始;
printf("请从键盘输入一行需要查询的英文句子,进行单词数量统计:\n\n");
gets(string); //从键盘获得输入的字符串;
//以下统计句子中的英文字符个数;
for(i=0;(c=string[i])!='\0';i++) //for循环语句,遍历句子中的每个字符;初始化i=0;若字符c!='\0',即未到达结束符'\0'的话,执行i++;
{
if(('A'=string[i]string[i]='Z')||('a'=string[i]string[i]='z'))
sum++; //以上为条件句,如果字符在A~Z,a~z 范围之内的话,则执行sum++,累加英文字母个数;
}
//以下统计句子中的英文单词个数;
for(i=0;(c=string[i])!='\0';i++) //for循环语句,遍历句子中的每个字符;初始化i=0;若字符c!='\0',即未到达结束符'\0'的话,执行i++;
{ //'\0'用作字符串的结束符。它的ASCII数值是0。
if(c'A'||c'Z'c'a'||c'z') //设定条件:如果字符 c 遇到A~Z和a~z范围之外其它符号字符的话,包括遇到空格' ';
word=0; //上面条件为真时,执行这里,置word=0,表示未遇到单词,或,一个单词已结束,同时也意味着要开始遇到下一个新单词;
else if(word==0) //当条件(word==0)为真,执行下面花括号里面的语句;当word==0时,表示未遇到字母,即未遇到单词,或上一个单词已结束;
{
word=1; //那么置word=1,即,表示下一个新单词开始,
num++; //执行num++,累加英文单词的个数;
}
}
printf("\n");
printf("您输入的这句英文句子中共包含%d个英文字符,%d个英文单词。\n",sum,num);
}
示例:输入语句: Hello ! My friend , how are you ? (注意单词的前后有空格)
C语言进阶:[14]统计单词个数
对一段英文文章进行单词统计,如果刚接触这样的问题,感觉比较棘手。要把问题分解开,每一个小问题解决了,然后进行归并,大问题也就解决了。首先单词是以字符开始,并且连续个字符,直到下一个字符不是字符结束,并且这个字符不能是数字字符。核心问题就是找出一个单词。
查找单词的代码如下:
首先查询到第一字符,有可能是单词,然后连续查找字符,直到遇到第一个不是字符的字符,并且这个字符在本编程中是空字符和标点符号,还得考虑遇到字符串结束符\0。在代码中难得部分是字符串指针的处理即返回的是下一个可能是单词的查找开始位置。例如
h e l l o 空格 w o r l d
0 1 2 3 4 5 6 7 8 9 10
第一次查找,i值指向了空格即i=5,传过来的索引j指向h,即索引为0,那么结果j应该指向空格即j=5,表达式为j= j+ (i-(e的索引)1 + 1(数量差一)) = j+ i。主程序代码是:
主程序主要是调用单词查找函数,每次更新索引值,直到字符串查找完毕。
结果如下:
该程序的缺点是没有统计单词的开始和结束位置。
当前文章:c语言统计单词数函数 c语言 统计单词
转载源于:http://scgulin.cn/article/ddigshs.html