销售网站制作电话,网站建设好的公司哪家好,合肥软件外包公司,合肥网站建设发布1、strstok 函数通过特定字符分割字符串
该函数用来将字符串分割成一个个片段。参数str指向欲分割的字符串#xff0c;参数delimiters则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delimiters中包涵的分割字符时#xff0c;则会将该字符改为\0 字符…1、strstok 函数通过特定字符分割字符串
该函数用来将字符串分割成一个个片段。参数str指向欲分割的字符串参数delimiters则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delimiters中包涵的分割字符时则会将该字符改为\0 字符。在第一次调用时strtok()必需给予参数s字符串往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。 需要注意的是使用该函数进行字符串分割时会破坏被分解字符串的完整调用前和调用后的s已经不一样了。第一次分割之后原字符串str是分割完成之后的第一个字符串剩余的字符串存储在一个静态变量中因此多线程同时访问该静态变量时则会出现错误。
#include stdio.h
#include string.hint main(int argc, char *argv)
{char temp_str[] I,Love,the,panda,of,china;char * str strtok(temp_str,,);while(str) {printf(str: %s \n,str);str strtok(NULL,,);if(str NULL)break;}return 0;
}运行结果
str: I
str: Love
str: the
str: panda
str: of
str: china 2、strstok_s 函数通过特定字符分割字符串
char *strtok_r(char *str, const char *delim, char **saveptr); 该函数也会破坏带分解字符串的完整性但是其将剩余的字符串保存在saveptr变量中保证了安全性。
#include stdio.h
#include stdlib.h
#include string.hint main()
{char str[]I Love,the panda,of china;char *ptr;char *p;printf(before strtok: str%s\n,str);printf(begin:\n);ptr strtok_r(str, ,, p);while(ptr ! NULL){printf(str%s\n,str);printf(ptr%s\n,ptr);ptr strtok_r(NULL, ,, p);}return 0;
}运行结果
before strtok: strI Love,the panda,of china
begin:
strI Love
ptrI Love
strI Love
ptrthe panda
strI Love
ptrof china