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