1178: 单词数
题目描述
统计一篇文章里不同单词的总数。
输入
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由大小写字母和空格组成,没有标点符号,遇到#时表示输入结束。每篇文章的单词数小于1000,每个单词最多由30个字母组成。
输出
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
样例输入 Copy
you are my friend
#
样例输出 Copy
4
C
#include<stdio.h>
#include<string.h>
int main()
{
char a[30000],b[1000][31];
int n,i,j,k,l;
while(gets(a),strcmp(a,"#")!=0)
{
n=0;
l=strlen(a);
for(i=0;i<l;i++)
{
if(a[i]==' ')
continue;
else
{//将单词存入二维数组
for(j=0;a[i]!=' ' && i<l;j++)
b[n][j]=a[i++];
b[n][j]='\0';
n++;
}
}
k=n;
//寻找相同的单词
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
{
if(strcmp(b[i],b[j])==0 && b[i][0]!='\0')
{
b[i][0]='\0';
n--;
}
}
printf("%d\n",n);
while(k--)//将数组初始化
b[k][0]='\0';
}
return 0;
}