如何删除数组的内容以在以后使用strcat()?

时间:2019-03-14 01:43:42

标签: c

我正在从文件中读取行,对于其中的一部分,我决定以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,因为我有一个预期的字符串,几乎可以填满数组。谢谢!

1 个答案:

答案 0 :(得分:1)

str[0] = 0;就是您所需要的-将NUL终止符插入数组的开头。 strcpy(str, "");具有相同的效果,并且效果很好。