gpt4 book ai didi

c - 返回文件中的第 n 个单词

转载 作者:行者123 更新时间:2023-11-30 15:04:50 25 4
gpt4 key购买 nike

我有一个包含一堆单词的文件(用空格分隔)。我正在尝试获取第 n 个单词。

我正在循环遍历文件的每个字符。当计数器到达空格时,我通过向计数器加 1 来计算单词数。如果计数器值等于 n (即它位于我想要的单词处),我想将当前字符添加到 char 数组中。由于 n 是 int,因此我使用 sprintf 转换为 char,然后使用 strncat 将字母添加到单词中。

代码如下:

int n;
int count = 1;
char word[100];
char converted_char[32];

while ((n = fgetc(file)) != EOF) {
if ((n) == ' ')
count++;

if ((count) == wordNumber)
{
sprintf(converted_char, "%d", n);
strncat(word, converted_char, 1);
}
}

printf("The word is: %s", word);

问题是,单词返回一个 int。我尝试用 %c 替换 %s,这给了我一个错误。我究竟做错了什么?

同样,我愿意接受有关更好方法的建议。

最佳答案

试试这个:

#include <stdio.h>

int main(void){
int wordNumber = 3;
FILE *file = fopen("data.txt", "r");
int count = 0;
char word[100];

while (fscanf(file, "%99s", word) != EOF) {
if(++count == wordNumber){
printf("The word is: %s\n", word);
break;
}
}
fclose(file);

return 0;
}

关于c - 返回文件中的第 n 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120523/

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