我的字符串是"A,B,C,D,E"
并且分隔符是","
如何在执行strtok()之后获取剩余的字符串,即"B,C,D,E"
char a[] = "A,B,C,D,E";
char * separator = ",";
char * b = strtok(a,separator);
printf("a: %s\n", a);
printf("b: %s\n", b);
Run Code Online (Sandbox Code Playgroud)
输出为:
a:A
b:A
但是如何得到结果
a:B,C,D,E
b:
谢谢.
Nei*_*eil 19
您可以改变分隔符集,因此只需传递一个空字符串:
char a[] = "A,B,C,D,E";
char * separator = ",";
char * b = strtok(a, separator);
printf("b: %s\n", b);
char * c = strtok(NULL, "");
printf("c: %s\n", c);
Run Code Online (Sandbox Code Playgroud)
不要用strtok()它,因为那不是它的用途.
使用strchr()查找第一个分离器,并从那里:
char a[] = "A,B,C,D,E";
const char separator = ',';
char * const sep_at = strchr(a, separator);
if(sep_at != NULL)
{
*sep_at = '\0'; /* overwrite first separator, creating two strings. */
printf("first part: '%s'\nsecond part: '%s'\n", a, sep_at + 1);
}
Run Code Online (Sandbox Code Playgroud)