1178: recuento de palabras

1178: recuento de palabras

Descripción del tema
Cuente el número total de palabras distintas en un artículo.
Entrada
Hay varios conjuntos de datos, cada conjunto es una fila y cada conjunto es un artículo pequeño. Cada artículo pequeño se compone de letras mayúsculas y minúsculas y espacios, sin signos de puntuación, y el final de la entrada cuando se encuentra #. El número de palabras por artículo es inferior a 1000 y cada palabra consta de hasta 30 letras.
Salida
Cada grupo genera solo un entero, en su propia línea, que representa el número total de palabras distintas en un artículo.
Copia de entrada de muestra
eres mi amigo

Copia de salida de muestra
4
Fuente/Clasificación

#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;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44500344/article/details/108127730
Recomendado
Clasificación