问题描述:
统计一篇文章里不同单词的总数。
输入:
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由大小写字母和空格组成,没有标点符号,遇到#时表示输入结束。每篇文章的单词数小于1000,每个单词最多由30个字母组成。
输出:
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
样例输入:
you are my friend
#
样例输出:
4
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
char str[30001];
char arr[10000][31];
while(gets(str),strcmp(str,"#")!=0)
{
int i=0,j=0,flag=1,cnum=0,num=0;
while(str[i]!='\0')
{
if(str[i]==' ')//遇到空格跳过 到下一个单词
i++;
else
{
for(j=0;str[i]!=' '&&str[i]!='\0';j++,i++)//遍历将单词存入二维数组的第cnum行
{
arr[cnum][j]=str[i];
}
arr[cnum][j]='\0';
cnum++;
}
}
for(i=0;i<cnum;i++)
{
flag=1;
for(j=0;j<i;j++)
{
if(strcmp(arr[i],arr[j])==0)
{
flag=0;
break;
}
}
if(flag==1)
num++;
}
printf("%d\n",num);
}
return 0;
}