C字符串分割

来源:互联网 发布:奥拉朱旺季后赛数据 编辑:程序博客网 时间:2024/05/16 07:16
/**********************************从instr中截取第一个delimiter之前的内容放到outstr中,返回第一个delimiter之后的位置**************************************/char *msstrtok(char *instr, char *outstr, char *delimiter){  char *tmpstr;  if(memcmp(instr, delimiter, strlen(instr))==0){    return(NULL);  }  if(instr==NULL || strlen(instr)==0){return(NULL);}  tmpstr=strstr(instr,delimiter);  if(tmpstr!=NULL){    memcpy(outstr, instr, strlen(instr)-strlen(tmpstr));    return(strstr(instr,delimiter)+strlen(delimiter));  }else{    memcpy(outstr, instr, strlen(instr));    return(NULL);  }}

说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概继续学得不够全面啊!这里引用一段strtok用法:


char str[] = "now # is the time for all # good men to come to the # aid of their country";   char delims[] = "#";   char *result = NULL;   result = strtok( str, delims );   while( result != NULL ) {       printf( "result is \"%s\"\n", result );       result = strtok( NULL, delims );   }      

      

The above code will display the following output:

   result is "now "   result is " is the time for all "   result is " good men to come to the "   result is " aid of their country"
原创粉丝点击