【C语言统计不同单词个数编写一个程序,输入一个句子,然后统计-查字典问答网
分类选择

来自李靖的问题

  【C语言统计不同单词个数编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“onelittletwolittlethreelittleboys”,总共有5个不同的单词:one,little,t】

  C语言统计不同单词个数

  编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“onelittletwolittlethreelittleboys”,总共有5个不同的单词:one,little,two,three,boys。

  说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。

  输入格式:输入只有一行,即一个英文句子。

  输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。

  输入样例:

  onelittletwolittlethreelittleboys

  输出样例:

  5

1回答
2020-05-16 17:19
我要回答
请先登录
宋继平

  #include<stdio.h>

  #include<string.h>

  intis_same(char*str,char*s)

  {

  char*p;

  charstr2[100];

  intflag=0;

  strcpy(str2,s);//将内容复制到另一个数组中

  p=strtok(str2,"");//目的是为了避免strtok函数对原来字符串的破坏!

  while(p!=NULL)

  {

  if(strcmp(p,str)==0)//比较是否相同!

  {

  flag=1;

  break;

  }

  p=strtok(NULL,"");

  }

  if(flag==0)

  return0;

  else

  return1;

  }

  intgetcount(char*s)

  {

  inti=0,j=0,length=0;

  charstr[20],str1[100];//将前一个单词储存起来,以便与后面的单词比较看是否一样

  intword_count=0;//统计单词个数

  intk=0;//每个单词的字符数量!

  while(s[i])

  {

  if(s[i]!='')

  {

  if(word_count==0)

  word_count++;

  j=i;

  for(k=0;k<i;k++)

  str1[k]=s[k];

  str1[k]='';

  while((s[j]!='')&&(s[j]!=''))

  {

  str[length]=s[j];

  j++;

  length++;

  }

  str[length]='';

  if((word_count!=0)&&(!is_same(str,str1)))

  {

  word_count++;

  }

  i+=length;

  }

  else

  i++;

  length=0;

  }

  return(word_count-1);//减去第一次统计重复的

  }

  intmain(void)

  {

  charstr[100];

  intcount=0;

  printf("inputastring:");

  gets(str);

  count=getcount(str);

  printf("不同单词的数量:%dn",count);

  return0;

  }

2020-05-16 17:23:07

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •