gpt4 book ai didi

c - c计数器的实现

转载 作者:行者123 更新时间:2023-11-30 14:41:01 25 4
gpt4 key购买 nike

我编写了一个 C 程序来计算单词“printf”在特定文件(此处为“document.c”)中出现的次数。 “document.c”有多行代码。我所做的是从 while 循环开始迭代文件的每一行,然后使用函数 strstr 读取 for 循环内每一行的字符。

它不会用我当前的代码打印任何内容。此外,我认为还有一些其他小问题,因为在旧版本中它用于打印但不正确,它打印的数字比文档中“printf”的实际数量大得多。

我也是c新手,谢谢!

int counter() {
FILE * filePointer;
filePointer = fopen("document.c", "r");
int counter = 0;
char singleLine[200];

while(!feof(filePointer)){
fgets(singleLine, 200, filePointer);
for (int i = 0; i < strlen(singleLine); i++){
if(strstr(singleLine, "printf")){
counter++;
}
}
}
fclose(filePointer);
printf("%d",counter);
return 0;
}

最佳答案

您将迭代输入行中的每个字符,然后询问字符串“printf”是否出现在该行中的任何位置。如果该行包含 5 个字符,则您将询问 5 次;如果它包含 40 个字符,您将询问 40 次。

假设您试图涵盖“printf”可以在一行中多次出现的情况,请查找 strstr()返回,并使用它来调整内部循环中搜索的起始位置(不应迭代每个字符,但应在找到新的“命中”时循环)。

(向上投票者请注意:我正在回答问题,但不提供代码,因为我不想为他们做作业。)

关于c - c计数器的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55191615/

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