我很难解决这个问题。我有一个C字符串,我想删除它的第一部分。让我们说它:“食物,金额,卡路里”。我想复制每一个这些值,但不是逗号。我找到了逗号,并将逗号的位置返回给我的方法。然后我用删除C字符串的第一部分
strncpy(aLine.field[i], theLine, end);
要“theLine”复制到我的阵列在位置“I”,仅在第一个“结束”字符(首次,“结束”将是4,是因为那里的第一个逗号是)。但是,因为它在循环中,我想从数组中删除“食物”,并重新执行该过程。但是,我看不到我如何删除第一部分(或向前移动数组指针?)并保留其余部分。任何帮助将是有用的!
事实上,在大多数机器上,这将在strtok的尝试写入只读字符串常量崩溃。 – 2010-12-13 05:24:11
是。该代码仅用于演示目的与使用strtok有关。 :-) – 2010-12-13 05:28:21
@ChrisDodd:仓促upvoted你的评论(没有撤消),但不同意。将常量字符串'* s'复制到cstring'str'中,每次调用strtok都会修改cstring(用'0'终止符替换',')并返回该令牌的地址。所以在那里没有不变的只读字符串。我错了吗? – Salvador 2014-04-19 23:07:26