gpt4 book ai didi

c - 如何用 C 语言从文本文件构建数组

转载 作者:行者123 更新时间:2023-11-30 17:09:34 25 4
gpt4 key购买 nike

我正在编写一个程序,将文本文件中的字符串插入到数组中。我已经编写了插入函数,但我对如何逐字符串运行文本文件感到困惑。

本质上,在 main() 函数中,程序需要设置一个数组,然后在文件打开的情况下运行,并对文件中的每个字符串使用插入函数。那么我将如何获取每个字符串,在插入函数中使用它,然后继续处理文件中的下一个字符串。

如果需要更多说明,请告诉我!谢谢。

更新了插入和主要功能:

insert函数将字符串word插入Table中,Table中应保持排序顺序。如果字符串插入成功则返回n+1;否则返回n。它使用二分搜索。

int insert(char *word, char *Table[], int n){

int low = 0;
int high = n;
int mid;
int index = -1;
int k;

while (low < high)
{
mid = low + (high - low)/2;
if (strcmp(Table[mid], word) == 0)
{
index = mid;
break;
}
else if (strcmp(Table[mid], word) < 0)
low = mid + 1;
else
high = mid - 1;
}
if (index != -1 && index < n)
return n;

for (index = 0; index < n; index++)
{
if (strcmp(Table[index], word) < 0)
continue;
else
break;
}
for (k = n-1; k >= index; k--)
{
Table[k + 1] = Table[k];
}
Table[index] = strdup(word);

return n + 1;
}

主要:

命令行应该是这样的“./concordance 15 < input.txt”

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

FILE *fp = fopen(argv[3], "r");
int n = atoi(argv[1]);
int insert;
char *Table[n];

我被困在主函数中,所以它不完整。此外,该文件中的“单词”(我所说的字符串)是用空格、句号、逗号、分号、冒号、感叹号等标点符号进行分类的点、双引号、问号和换行符。但撇号仍然被认为是单词的一部分。

最佳答案

我建议首先使用 FILE 打开文件,然后使用 fgets 读取该行,如下所示:

char* str;
FILE* fp;
fp = fopen("YOUR_FILE_NAME", "r"); // open for reading
if (fp == NULL)
{
// say some error message
return -1;
}
fgets(str, SOME_LARGE_NUMBER, fp);

然后使用 strtok 如下:

char* tok;
do {
tok = strtok(str, " ");
// HANDLE STRING <-- This is where you would use your insert thing
} while(tok != NULL);

或者通过循环遍历 gets 中的字符串中的每个字符来手动解析字符串,我不打算写它,因为它有点长。

关于c - 如何用 C 语言从文本文件构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33226587/

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