strtok分割
char str[] = "m v'QData' a.c'QData'b.c ";
char *p;
p = strtok(str, "'QData'");
while (p)
{
printf("%s\n", p);
p = strtok(NULL, "'QData'");
}
请教一下,这个分割怎么失败了呢
[解决办法]
MSDN的例子,请参考:
#include <string.h>#include <stdio.h>char string[] = "A string\tof ,,tokens\nand some more tokens";char seps[] = " ,\t\n";char *token;void main( void ){ printf( "%s\n\nTokens:\n", string ); /* Establish string and get the first token: */ token = strtok( string, seps ); while( token != NULL ) { /* While there are tokens in "string" */ printf( " %s\n", token ); /* Get next token: */ token = strtok( NULL, seps ); }}
[解决办法]
不是以 'QData' 这个整体来分隔
而是以其中的每一个 ' Q D a t 这些字符来分隔
[解决办法]
#include <string.h>
char *strtok( char *str1, const char *str2 );
功能:函数返回字符串str1中紧接“标记”的部分的指针, 字符串str2是作为标记的分隔符。如果分隔标记没有找到,函数返回NULL。为了将字符串转换成标记,第一次调用str1 指向作为标记的分隔符。之后所以的调用str1 都应为NULL。
"'QData'" 并不是以这个词组做分隔符,而是 'QDat 五个都是分隔符号