如何使用strtok拆分字符串和换行符

时间:2012-11-16 12:41:18

标签: c string token

我正在尝试拆分我的字符串和(\ n)新行,并希望获得没有\ n的新字符串。我的代码如下所示。谢谢。

token = strtok(NULL,"")  

上面的代码片段会存储“some string and \ n”,因为我需要“some string”。

我的数据看起来像这样。

1,v1,p1,182,1665,unkn

2 个答案:

答案 0 :(得分:3)

如果数据看起来像这样

char line[] = "1,v1,p1,182,1665,unkn\n";

你可以做这样的事情(在C中)

char* p = line + strlen(line) - 1;
for (;*p != ','; --p) 
{
  ;
}
char* lastword = strtok(p + 1,"\n"); 

答案 1 :(得分:0)

如果您所做的只是替换第一个换行符,那么这要好得多:

char *tmp = strchr (str, '\n');
if (tmp) *tmp = 0;

如果要替换字符串中的最后一个换行符,那么这样做会更好:

char *tmp = strrchr (str, '\n');
if (tmp) *tmp = 0;