gpt4 book ai didi

c - 如何删除数组的内容以便稍后使用 strcat() ?

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

我正在从文件中读取行,并且我决定按 char 逐个读取 char 中的部分内容。这是我得到的:

char str[500];    // it has to be this size, I promise
char c; // for reading each char
c = fgetc(fp);
while (c != '\t') // this char ends the string I'm trying to read
{
strncat(str, &c, 1); // strcat() didn't work
c = fgetc(fp); // read next char
}

这很好用。然而,我还得读更多的行。我尝试重置 str 以便可以以相同的方式再次使用 strncat(),但出现“Abort trap: 6”错误。以下是我(分别)尝试过的一些事情:

strcpy(str, ""); and strcpy(str, " "); // just assigns first index to '\0'
strcpy(str, 0); // seg fault
strcpy(str, "\0"); and strcpy(str, '\0'); // same as first option
memset(str, 0, strlen(str)); // all zeroes, but Abort trap: 6
memset(str, 0, sizeof(str)); // same thing
// and (in desperation)
strcpy(str, &c + '\0'); // this is after doing strcpy(str, "");
// get an error

我不想迭代 str,将每个值分配为 null,因为我有一个几乎填满数组的预期字符串。谢谢!

最佳答案

str[0] = 0; 就是您所需要的——将 NULL 终止符粘贴到数组的开头。 strcpy(str, ""); 具有相同的效果并且工作得同样好。

关于c - 如何删除数组的内容以便稍后使用 strcat() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153727/

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