如何从c中删除字符串中的第一个单词

时间:2012-10-23 17:01:40

标签: c

我有一串整数值。例如20 200 2000 21 1

我想删除第一个单词(本例中为20)。知道怎么做吗?

我想过使用像......这样的东西。

sscanf(str, "/*somehow put first word here*/ %s", str);

4 个答案:

答案 0 :(得分:5)

怎么样

char *newStr = str;
while (*newStr != 0 && *(newStr++) != ' ') {}

答案 1 :(得分:4)

您可以使用strchr(),这会将str设置为第一个空格后的子字符串,如果没有空格则将其保留;

char *tmp = strchr(str, ' ');
if(tmp != NULL)
    str = tmp + 1;

答案 2 :(得分:1)

您可以跳过第一个空格中的所有字符,然后跳过空格本身,如下所示:

char *orig = "20 200 2000 21 1";
char *res;
// Skip to first space
for (res = orig ; *res && *res != ' ' ; res++)
    ;
// If we found a space, skip it too:
if (*res) res++;

此代码片段打印200 2000 21 1link to ideone)。

答案 3 :(得分:0)

我发现最简单,最优雅的方式就是做那样的事情

   int garbageInt;
   sscanf(str, "%d %[^\n]\n",&garbageInt,str);