C言語は異なる単語の数を数えます

入力された文に(繰り返されていない)単語の数を数えます。文には小文字とスペースしかありません

ここに画像の説明を挿入

分析

入力文を最初からトラバースし、各単語を文字列変数tに割り当てます(単語の文字列配列にそのような単語がない場合)、count + 1をカウントし、単語を単語配列にコピーします

コード

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int count=0;//全局变量
int x=0;//全局变量
void append(char (*p)[30],char *t)//定义函数,实现单词是否存在的判断,若不存在则计数加一,并复制单词到数组
{
    
    
    int flag=0,i;
    for(i=0;i<100;i++)
    {
    
    
        if(strcmp(t,p[i])==0)
           {
    
    
                flag=1;
           }
    }
    if(flag==0)
    {
    
    
        count++;
        strcpy(p[x++],t);
    }

}
int main()
{
    
       char words[100][30]={
    
    '\0'};
    char s[101]={
    
    '\0'};
    char t[30];
    int i,j,m=0;
    gets(s);
    for(i=0;i<strlen(s);i++)
    {
    
    
        if(s[i]!=' ')
        {
    
    
            for(j=i;s[j]>='a'&&s[j]<='z';j++)
            {
    
    
                t[m++]=s[j];
            }
            i=j;
            t[m]='\0';
            m=0;
            append(words,t);//调用函数
        }
    }
    printf("%d",count);
    return 0;
}

おすすめ

転載: blog.csdn.net/SingDanceRapBall/article/details/94838760