lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend #
Sample Output
4
题意很好理解,就是统计文章中的不同单词,先利用单词之间的空格,把单词提取出来,然后利用二位数存储,最后用strcmp进行比较,同时去重,最后统计单词的个数。
#include<stdio.h>
#include<string.h>
char book[100][100];
int main()
{
char a[100];
while(gets(a))
{
if(a[0]=='#') break;
int i=0,j=0,sum=0;
while(a[i]==' ') i++;
while(a[i])
{
int flag=0;
while(a[i]!=' '&&a[i]!=0)
{
book[j][flag++]=a[i];
i++;
}
while(a[i]==' ') i++;
book[j][flag]=0;
j++;
}
for(int m=0; m<j; m++)
{
for(int n=m+1; n<j; n++)
if(strcmp(book[m],book[n])==0&&book[n][0]!=1)
{
book[n][0]=1;
}
}
for(int i=0; i<j; i++)
{
if(book[i][0]!=1)
sum++;
}
printf("%d\n",sum);
}
return 0;
}