gpt4 book ai didi

计算输入一个单词的次数

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:35 24 4
gpt4 key购买 nike

在多次尝试使我的程序正常运行后,我求助于你们。我想制作一个程序来计算输入特定单词的次数。该特定单词已指定为参数,我试图通过使用 argc 和 argv 来调用它。然后我希望程序计算我输入一个单词的次数并完成我希望能够输入#EOF 以便它停止并显示结果。到目前为止,这是我一直在尝试的。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int main(int argc, char *argv[])
{

int i=0;
char buf[1026]={'\0'};
char *p="#EOF\n";
fgets(buf, sizeof buf, stdin);

while((strcmp(buf, p) !=0) && (fgets(buf, sizeof buf, stdin) != NULL ))
{

if(strncmp(buf, argv[1], strlen(argv[1])) == 0)
{
i++;
}
}
printf("%d", i);

return 0;
}

我完全没有错误,但也没有真正发生。我确实尝试检查故障所在,我发现当我尝试在 if 语句中显示 I 的值时,它的计数非常非常非常快!

提前致谢!

最佳答案

嗯,第一个问题是 argv[0] 是你的程序名;您的参数从 argv[1] 开始。

此外,在您将任何内容放入 buf 之前会调用您的 while 循环。您肯定需要使用不同的循环或预先初始化 buf 以确保您的循环正常运行。

此外,我建议确保您确切知道什么应该匹配,什么不应该匹配。您正在根据要搜索的单词的长度进行子串比较 (strncmp),但这是您想要的吗?这将获取子字符串中的单词,但您想要那个还是整个单词?此外,用户是否会在每一行或可能出现该词的句子中键入一个词?大小写重要吗?

关于计算输入一个单词的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com