1178:単語数
トピックの説明
記事内の個別の単語の総数を数えます。
入力
データには複数のセットがあり、各セットは行であり、各セットは小さな記事です。各小冠詞は、大文字と小文字の文字とスペースで構成され、句読点はなく、#が検出された場合の入力の終わりです。記事あたりの単語数は1000未満で、各単語は最大30文字で構成されます。
出力
各グループは、記事内の個別の単語の総数を表す1つの整数のみを独自の行に出力します。
サンプル入力
あなたは私の友達です
サンプル出力コピー
4
ソース/分類
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
int main(){
char s[30000];
char *p[1000];
while(gets(s),strcmp(s,"#")!=0){
int j=0;//统计单词的个数
int k=0;//每个单词的字符
int count=0;//不重复的单词个数
for(int i=0;i<strlen(s);i++){
if(s[i]!=' '){
k=0;
p[j]=(char *)malloc(sizeof(char)*30);
for(i;s[i]!=' '&&i<strlen(s);i++){
p[j][k++]=s[i];
}
p[j][k]='\0';
j++;
}
}
//第i个单词的后面没有与它相同的就+1,结果需要再+最后一个单词
int f=1;//表示某一单词的后面没有与之重复的
for(int i=0;i<j-1;i++){
for(int k=i+1;k<j;k++){
f=1;
if(strcmp(p[i],p[k])==0){
f=0;
break;
}
}
if(f==1) count++;
}
printf("%d\n",count+1);
}
return 0;
}