#include<stdio.h>
#include<string.h>
int main()
{
char s[100],str[100][100],g[100];
int n,m,i,a,b;
while(gets(s)&&strcmp(s,"#"))
{
n=strlen(s);
for(a=b=i=0;i<n;i++)
{
if(s[i]!=' ') str[a][b++]=s[i];
if(s[i]==' '&&s[i+1]!=' ')
{
str[a][b]='\0';
b=0;a++;
}
}//把字符串分成一个一个单词
str[a][b]='\0';
for(i=0;i<=a;i++)
for(j=i+1;j<=a;j++)
if(strcmp(str[i],str[j])>0)
{
strcpy(g,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],g);
}//字符串排序,为了把相同的单词剔除
strcpy(str[a+1],"#"); //因为str[a+1]随机的,防止出现与str[a]相同的字符串
for(m=i=0;i<=a;i++){
if(strcmp(str[i],str[i+1])!=0&&strcmp(str[i],"\0"))
m++;}
printf("%d\n",m);
}
return 0;
}
字符串处理能力有待提高
测试数据:
you are my friend (friend之后有很多空格)
测试数据:
you are my friend (you之前和friend 之后均无空格)
you are my friend(you之前空格数大于1)
you are my friend(are和my之前空格数多于1)