c - 删除 C 字符串的第一部分

标签 c arrays string loops cstring

我在解决这个问题时遇到了很多麻烦。我有一个 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/

相关文章:

c - 为链接器指定外部存储器

arrays - 如何选择二维数组 A(i,j) 的最佳配置

java - 如何将 String 对象转换为 String[]?

c++ - 从 const char* 到迭代器错误的 "no known conversion"- 另一种方式

ios - 将此日期字符串转换为 NSDate "2016-09-23T23:06:00+00:00"

c - 以位为单位增加大小的有效条件

c - 数组、结构体、函数

c - 指向指针数组的指针和 Stack Smashing 错误

php - 将字符串转换为数组 PHP

c - 在 C 语言中根据条件或 switch 情况初始化矩阵(二维数组)