-
C/C++ code
-
const char * function( char * pStr, int iStrLen) { bool bFindStart = false ; int iStart = 0 ; int iStop = 0 ; static buf[ 0xffff ]; for ( int i = 0 ; i < iStrLen; i ++ ) { if (pStr[i] == ' @ ' ) { if ( ! bFindStart) { iStart = i; bFindStart = true ; } else { iStop = i; break ; } } } strncpy(buf, pStr + iStart, iStop - iStart); buf[iStop - iStart] = 0 ; return buf; }
#include <string.h> #include <stdio.h> #include <stdlib.h> int main(void) { char input[50] = "addfdj|中国ds|fsf "; char *p; p = strtok(input, "| "); while(p) { printf( "%s\n ", p); p=strtok(NULL, "| "); } system( "PAUSE "); return 0; }#include <iostream> #include <string> using namespace std; string* split (char ch[], const char *sp) { int k=0,i=0; for (int j=0;j<strlen(ch);j++) { if (ch[j] == *sp) k++; } const int num = k+1; string *str = new string[num]; char *p; p = strtok(ch, sp); while (p != NULL) { str[i] = p; p = strtok(NULL, sp); i++; } delete p; return str; } void main() { char ch[] = "aaaaaaa,eeeeeeeeee,ccccccccc,ddddddddddd,sadfsadfd,adasd"; string *str = split(ch, ","); cout<<str[5]; }
#include <string.h> #include <stdio.h> int main( void ) { char string[] = "134214214|5465fdsf|塞井焚舍|1321|ewrewrewr"; char seps[] = "|"; char *token; token = strtok(string, seps); while(token != NULL) { printf(" %s\n", token ); token = strtok(NULL, seps); } } 输出结果为: 134214214 5465fdsf 塞井焚舍 1321 ewrewrewr 将截取的字符保存在数组中
http://topic.csdn.net/u/20110309/10/56844f73-e1ab-49ee-acbc-f74974844eb7.html