在C中以#分割字符串

why*_*why 0 c string split

我有一个像这样的字符串:

char *message = "12#34#56#78#90"
Run Code Online (Sandbox Code Playgroud)

我想得到:

a = "12"
b = "34"
c = "56"
d = "78"
d = "90"
Run Code Online (Sandbox Code Playgroud)

谁能给我一个好方法?

mar*_*cog 8

使用strtok().请注意,即使这是C++文档,该函数也存在于C中.请特别注意NULL在后续调用中使用以获取下一个标记.

char label = 'a';
char *token = strtok(message, "#");
while (token != NULL) {
  printf("%c = \"%s\"\n", label++, token);
  token = strtok(NULL, "#");
}
Run Code Online (Sandbox Code Playgroud)

输出:

a = "12"
b = "34"
c = "56"
d = "78"
e = "90"
Run Code Online (Sandbox Code Playgroud)

请参见http://ideone.com/xk1uO