我想知道如何取一个字符串,用分隔符(例如空格)将其拆分为2,并将2个部分分配给2个单独的字符串.我尝试过strtok()但无济于事.
ere*_*eOn 56
#include <string.h>
char *token;
char line[] = "SEVERAL WORDS";
char *search = " ";
// Token will point to "SEVERAL".
token = strtok(line, search);
// Token will point to "WORDS".
token = strtok(NULL, search);
Run Code Online (Sandbox Code Playgroud)
请注意,在某些操作系统上,strtok手册页提到:
此接口已被strsep(3)废弃.
示例strsep如下所示:
char* token;
char* string;
char* tofree;
string = strdup("abc,def,ghi");
if (string != NULL) {
tofree = string;
while ((token = strsep(&string, ",")) != NULL)
{
printf("%s\n", token);
}
free(tofree);
}
Run Code Online (Sandbox Code Playgroud)
Spa*_*rky 11
出于这样的目的,我倾向于使用strtok_r()而不是strtok().
例如 ...
int main (void) {
char str[128];
char *ptr;
strcpy (str, "123456 789asdf");
strtok_r (str, " ", &ptr);
printf ("'%s' '%s'\n", str, ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这将输出......
'123456''789asdf'
如果需要更多分隔符,则循环.
希望这可以帮助.