Ps:啊啊啊啊啊啊!WA了N次!真的是N次......终于做出来了...想哭的心情都有了...

这道题要考虑前面有N个空格,中间有N个空格,后面也有N个空格....然后就是输入空格....

贴上代码:

#include "stdio.h"
#include "string.h"
void qdele(char a[]);    
void hdele(char a[]);    
char b[2000][2000];    
int main(){
    int i,s,j,flag[2000],k,t,num;
    char a[2000];
    while(gets(a)){
        if(a[0]=='#') return 0;
        qdele(a);
        hdele(a);
        s=strlen(a);
        memset(b,'\0',sizeof(b));
        k=t=0;
        if(s==0){
            printf("0\n");
            continue;
        }
        for(i=0;i<s;i++){
            if(a[i]==' '){
                if(a[i+1]==' ') continue;
                b[t][k]='\0';
                flag[t]=1;
                t++;
                k=0;continue;
                
            }
            b[t][k++]=a[i];
        }
        b[t][k]='\0';
        flag[t]=1;
        num=t+1;
        for(i=0;i<=t;i++){
            if(flag[i]==0) continue;
            for(j=i;j<t;j++){
                if(strcmp(b[i],b[j+1])==0){
                    flag[j+1]=0;
                    num--;
                }
            }
        }
        printf("%d\n",num);
    }
    return 0;
}
void qdele(char a[]){
    int i,s;
    s=strlen(a);
    for(i=0;i<s;i++){
        if(a[i]!=' ') break;
    }
    int t=0;
    for(;i<s;i++){
        a[t]=a[i];
        t++;
    }
    a[t]='\0';
}
void hdele(char a[]){
    int i,s;
    s=strlen(a);
    for(i=s-1;i>=0;i--){
        if(a[i]!=' ') break;
    }
    a[i+1]='\0';
}