读书人

strtok瓜分

发布时间: 2012-09-18 16:21:42 作者: rapoo

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的例子,请参考:

C/C++ code
#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 五个都是分隔符号

读书人网 >C语言

热点推荐