我在解决这个问题时遇到了很多麻烦。我有一个 C 字符串,我想删除它的第一部分。让我们说它:“食物,数量,卡路里”。我想复制这些值中的每一个,但不是逗号。我找到逗号,并将逗号的位置返回给我的方法。然后我用
strncpy(aLine.field[i], theLine, end);
要将“theLine”复制到我的数组中位置“i”,只有第一个“结束”字符(第一次,“结束”将是 4,因为那是第一个逗号所在的位置)。但是,因为它在循环中,所以我想从数组中删除“Food”,然后重新执行该过程。但是,我看不出如何删除第一部分(或向前移动数组指针?)并保留其余部分。任何帮助都会有用!
最佳答案
您需要的是截断以逗号作为分隔符的字符串。
您需要 strtok 来执行此操作。这是一个示例代码:
int main (int argc, const char * argv[]) {
char *s = "asdf,1234,qwer";
char str[15];
strcpy(str, s);
printf("\nstr: %s", str);
char *tok = strtok(str, ",");
printf("\ntok: %s", tok);
tok = strtok(NULL, ",");
printf("\ntok: %s", tok);
tok = strtok(NULL, ",");
printf("\ntok: %s", tok);
return 0;
}
这将为您提供以下输出:
str: asdf,1234,qwer
tok: asdf
tok: 1234
tok: qwer
关于c - 删除 C 字符串的第一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425767/