C提供了两个函数strtok()和strtok_r(),用于通过某些定界符分割字符串。拆分字符串是非常常见的任务。例如,我们用逗号分隔文件中的项目列表,并且希望将单个项目放在数组中。
strtok()
// Splits str[] according to given delimiters. // and returns next token. It needs to be called // in a loop to get all tokens. It returns NULL // when there are no more tokens. char * strtok(char str[], const char *delims);
输出:
Geeks for Geeks
strtok_r()
就像C中的strtok()函数一样,strtok_r()执行将字符串解析为标记序列的相同任务。 strtok_r()是strtok()的可重入版本
有两种方法可以调用strtok_r()
// The third argument saveptr is a pointer to a char * // variable that is used internally by strtok_r() in // order to maintain context between successive calls // that parse the same string. char *strtok_r(char *str, const char *delim, char saveptr);
下面是一个简单的C程序,用于显示strtok_r()的用法:
输出:
Geeks for Geeks
strtok的另一个示例:
输出:
Geeks for geeks Contribute
实际应用
strtok可用于基于某些分隔符将一个字符串拆分为多个字符串。使用此函数可以实现简单的CSV文件支持。 CSV文件以逗号作为分隔符。
输出:
1997, Ford, E350, ac, 3000.00,
参考:
1)手册页strtok_r() 2)http://stackoverflow.com/questions//c-correct-usage-of-strtok-r
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12490.html