欢迎大家来到IT世界,在知识的湖畔探索吧!
strtok_r函数可以根据指定的分隔符来切分字符串。
函数原型如下:
#include <string.h>
char *strtok_r(char *str, const char *delim, char **saveptr);
欢迎大家来到IT世界,在知识的湖畔探索吧!
str:需要分割的字符串
delim:分隔符
saveptr:保存剩下待分割的字符串。
比如需要将”Fred male 25,John male 62,Anna female 16″这个字符串按逗号分隔,代码如下:
欢迎大家来到IT世界,在知识的湖畔探索吧!#include <stdio.h>
#include <string.h>
/*
char *strtok_r(char *str, const char *delim, char **saveptr);
注意:
1、第一次调用时,str传递需要分割的字符串; 后续调用时,str需要传递NULL
2、这个函数会修改str字符串,所以str不能是常量字符串
3、返回的结果不包含delim字符
*/
int main(void)
{
char buffer[100] = "Fred male 25,John male 62,Anna female 16";
char *str = buffer;
char *saveptr = NULL;
char *ret = NULL;
while ((ret = strtok_r(str, ",", &saveptr)) != NULL)
{
str = NULL;
printf("ret: %s\n", ret);
}
return 0;
}
终端打印:
while循环了3次,每次输出一个字符串。
⚠️这个函数有几点需要注意:
1、第一次调用时,str传递需要分割的字符串; 后续调用时,str需要传递NULL。
2、这个函数会修改str字符串,所以str不能是常量字符串。
3、返回的结果不包含delim字符。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/48511.html