我需要编写一个函数或代码来拆分字符串/句子,显示每个单词,还显示一个单词在字符串/句子中出现的次数。我已经在每个单词中拆分字符串/句子的代码,但我仍然需要添加每个单词出现的次数。 输出必须是这样的:
> 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;
}
有人可以向我解释我是如何做到的,或者展示一些代码或视频。 谢谢。
答案 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 中字符串函数的更多信息: