制作一个函数,显示一个词在字符串/句子中出现的次数

时间:2021-01-29 11:27:34

标签: c count

我需要编写一个函数或代码来拆分字符串/句子,显示每个单词,还显示一个单词在字符串/句子中出现的次数。我已经在每个单词中拆分字符串/句子的代码,但我仍然需要添加每个单词出现的次数。 输出必须是这样的:

> Enter a sentence:
$ We like fries
> We: 1
> like: 1
> fries: 1

这是我的代码:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[100];
    char newString[10][10]; 
    int i,j,ctr;  
 
    printf("Enter a sentence:\n");
    fgets(str1, sizeof str1, stdin);    
 
    j=0; ctr=0;
    for(i=0;i<=(strlen(str1));i++)
    {
        
        if(str1[i]==' '||str1[i]=='\0')
        {
            newString[ctr][j]='\0';
            ctr++;
            j=0;    
        }
        else
        {
            newString[ctr][j]=str1[i];
            j++;
        }
    }
    for(i=0;i < ctr;i++)
        printf("%s\n",newString[i]);
    return 0;
}

有人可以向我解释我是如何做到的,或者展示一些代码或视频。 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以对 newString 进行 2D 循环,并将每个单词与数组中的其他单词进行比较,并记录 int 数组中每个单词的数量。
此函数可能对您有所帮助:

char * strcpy ( char * destination, const char * source );
int strcmp ( const char * str1, const char * str2 );

您也可以使用此功能以更简单的方式标记句子:

char *strtok(char *str, const char *delim);

有关 C 中字符串函数的更多信息:

https://www.cplusplus.com/reference/cstring/

相关问题