在c的函数库中提供了strtok进行字符串拆分,但有时会出错,用以下可以把输入的字符串,按其标志分格输出
#include <stdio.h> #include <string.h> int main () { char str[1024] ;//="This is a sample string,just testing."; char * pch; printf("please input your strings/n"); gets(str); printf ("Splitting string /"%s/" in tokens:/n",str); pch = strtok (str," "); while (pch != NULL) { printf ("%s/t|",pch); pch = strtok (NULL, "|,."); } return 0; }
以下是对于截断字符,进行分别提取,实现其使用功能。
//#include <stdio.h> #include <string.h> int main() { int i; char node[100],*str="lm|50|1001"; char *tmp,*delim="|"; char *strl[10]; i=0; strcpy(node,str); tmp= strtok(node, delim); strl[0]=tmp; //第一个截断字符 while(tmp) { printf("%s ", tmp); tmp = strtok(NULL, delim); strl[++i]=tmp; //第一个以后的截断字符 注:存放的形式应当为指针数组 } printf("/n"); for(i=0; i<3; i++) printf("strl[%d]=%s",i,strl[i]); //输出截断字符 }