首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

strtok瓜分

2012-09-18 
strtok分割char str[] m vQData a.cQDatab.c char *pp strtok(str, QData)while (p){pri

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 五个都是分隔符号

热点排行