gpt4 book ai didi

c - 如何使用 C 计算文本文件中的单词数?

转载 作者:行者123 更新时间:2023-12-01 23:34:42 24 4
gpt4 key购买 nike

我在为系统编程类(class)编写的程序中需要一些帮助。它在 C 中,我对 C 的经验非常非常少。我需要合并三个具有以下格式的文本文件:

word1
word2
word3
...
wordX

我还将把所有三个文件中的每个单词放入一个二维数组(字符串数组的数组)中,然后对它们使用某种排序方法。

我不需要排序方面的帮助,但我不知道如何从每个文本文件中获取字数或将它们放入数组中。


这是我用来计算文件中单词的函数。它不能在 gcc 上编译(可能出于显而易见的原因,但我不知道它们)。我的想法是否正确?

int countWords(FILE f){
int count = 0;
char ch;
while ((ch = fgetc(f)) != EOF){
if (ch == '\n')
count++;
//return count; originally here, but shouldn't be.
}
return count;
}

编辑:我想我可以找到一种方法来计算程序中的行数,但我不确定这种方法是否与我在这里尝试做的有什么不同。 (我从来没有真正擅长处理文本文件。


我得到它来计算程序中的所有行。我想我有点生疏了。


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

int countWords(FILE *f){
int count = 0;
char ch;
while ((ch = fgetc(f)) != EOF){
if (ch == '\n')
count++;
}
return count;
}
int main(void){

int wordCount = 0;
FILE *rFile = fopen("american0.txt", "r");
wordCount += countWords(rFile);
printf("%d", wordCount);
return 0;
}

我有点忘记了 FILE *fileName 的指针事情

最佳答案

您在 c 中使用的文件类型是 FILE*。那颗星很重要,表示该类型是“指向 FILE 的指针”。 countWords(FILE f) 不太可能是您要写的内容。

每次你调用你的函数时,它都会有一个新的count = 0,所以它总是返回 0 或 1。尝试使用 static int count;,使计数全局变量,或将当前计数传递给函数。您的另一个选择是将 return count; 行移到 while 循环之外。

您可能还需要使用您发布的格式将计数除以 2 以获得字数。

关于c - 如何使用 C 计算文本文件中的单词数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374062/

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