头文件:#include <string.h>
定义函数:char * strtok(char *s, const char *delim);
函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
范例
1 #include <string.h> 2 main(){ 3 char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z"; 4 char *delim = "-: "; 5 char *p; 6 printf("%s ", strtok(s, delim)); 7 while((p = strtok(NULL, delim))) 8 printf("%s ", p); 9 printf("\n"); 10 }
执行结果:
ab cd ef;gh i jkl;mnop;qrs tu vwx y;z //-与:字符已经被\0 字符取代
公司项目中的应用:
1 int CDevNetComm::SplitString( char const* strSource, std::vector<std::string>& tokens, char* szSeps ) 2 { 3 tokens.clear(); 4 char szSource[256]; 5 strcpy( szSource, strSource ); 6 char* token = strtok( (char*)szSource, szSeps ); 7 while( token != NULL ) 8 { 9 tokens.push_back( token ); 10 token = strtok( NULL, szSeps ); 11 } 12 return (int)tokens.size(); 13 }
时间: 2024-10-06 00:33:35