‘壹’ c语言统计单词个数问题!
根据英语的书写习惯,在每个单词前后都会有空格分隔。 所以可以依据空格来划分单词。
不过,由于空格可能存在连续多个,所以仅统计空格数是不可以的,需要更复杂一些的算法。
一、算法设计:
核心思想是通过一个flag,来确定单词的起始, 每出现一个单词的起始,则表示存在一个单词。 这样统计出现的单词起始个数,即可获得单词总数。
1、flag初始为1;
2、遍历字符串。
3、对于每个字符,如果出现非空格字符,且flag为1,则为单词起始,累加计数器。同时赋值flag为0。
4、在flag为0情况下,如果出现空格,表示上一个单词已经结束,设置flag为1。
5、 遍历结束后输出结果。
二、参考代码:
#include<stdio.h>
intfunc(char*s)//计算单词数函数
{
inti,n=0,flag=1;
for(i=0;s[i];i++)//遍历
{
if(flag==1)
{
if(s[i]!='')//单词起始
{
n++;
flag=0;
}
}
elseif(s[i]=='')//上一个单词结束。
flag=1;
}
returnn;//返回结果。
}
intmain()
{
chars[200];
gets(s);//输入字符串。
printf("%d ",func(s));//调用函数,计算并输出结果。
return0;
}
‘贰’ C语言问题,读取txt文件中单词个数。帮忙看一下程序。
#include "stdio.h"
main()
{
char s[81],c;
int i,num=0,word=0;
printf("请输入:\n");
gets(s);
for(i=0;(c=s[i])!='\0';i++)//判断句子是否到未
if(c==' ') word=0;//是空格就为0
else if(word==0)//不是空格就判断之前有没有空格
{
word=1;//复位用来判断空格是否存在的开关
num++;//如果之前有空格,单词数加1
}
printf("输入字符串共有%d个单词.\n",num);
}
这是统计单词数的c程序,你自己看看吧,可能会帮得上你,因为你的那个有文件,我没有新建文件,所以就只能帮你到这儿了。
‘叁’ c语言统计单词个数
根据英语的书写习惯,在每个单词前后都会有空格分隔。 所以可以依据空格来划分单词。
不过,由于空格可能存在连续多个,所以仅统计空格数是不可以的,需要更复杂一些的算法。
一、算法设计:
核心思想是通过一个flag,来确定单词的起始, 每出现一个单词的起始,则表示存在一个单词。 这样统计出现的单词起始个数,即可获得单词总数。
1、flag初始为1;
2、遍历字符串。
3、对于每个字符,如果出现非空格字符,且flag为1,则为单词起始,累加计数器。同时赋值flag为0。
4、在flag为0情况下,如果出现空格,表示上一个单词已经结束,设置flag为1。
5、 遍历结束后输出结果。
二、参考代码:
#include<stdio.h>
intmain()
{
chars[200];
inti,n=0,flag=1;
gets(s);//输入字符串。
for(i=0;s[i];i++)//遍历
{
if(flag==1)
{
if(s[i]!='')//单词起始
{
n++;
flag=0;
}
}
elseif(s[i]=='')//上一个单词结束。
flag=1;
}
printf("%d ",n);//输出结果。
return0;
}
‘肆’ c语言 读入一行英文文本每个单词出现的个数
//通过键盘输入一行英文句子,统计其中的英文字母和单词的数量,单词之间用空格分开(标点符号不算单词);
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
char string[100];//根据拟从键盘输入的字串的长度需要适当调整,要避免输入的长度超出设定的范围。
char c;
int i, num=0,sum=0,word=0; //定义 word 用来指示一个单词是不是结束或新单词是否开始;
printf("请从键盘输入一行需要查询的英文句子,进行单词数量统计:
");
gets(string); //从键盘获得输入的字符串;
//以下统计句子中的英文字符个数;
for(i=0;(c=string[i])!='