strtok分割函数
2020-05-14 11:37
30 查看
#include<bits/stdc++.h> using namespace std; char str[] = "you-r-a"; char *temp; char reg[] = "-"; int main(){ temp = strtok(str,reg); while(temp){ puts(temp); temp = strtok(NULL,reg); } }
这个函数的用途是把一个字符串按照seps中指定的符号进行分割,就如同perl中的split()函数。但是,为什么strtok(NULL,seps)中的第一个参数是NULL呢?太奇怪了。
查了查资料,发现玄机在这里:这个函数strtok(OriginalString,Seps)涉及到两个指针。
第一个指针pointer_a用来指向函数返回的字符串,这个字符串是被原字符串OriginalString被seps中的字符截断后的第一个字符串。
第二个指针pointer_b用来指向OriginalString中,匹配截断字串seps的位置。
这样,在循环体之内进行第二次函数调用时只要把strtok()的第一个参数设置为NULL,就可以直接从pointer_b位置开始进行查找匹配了。
可以理解为NULL让strtok继续向后匹配
相关文章推荐
- strtok、strtok_s、strtok_r 字符串分割函数
- 分割字符串:strtok()函数
- 分割字符串:strtok()函数
- C语言中的字符串分割函数strtok的用法
- PHP字符串分割函数explode,strtok,str_spli的用法
- C语言中strtok函数进行分割字符串!
- C语言sscanf()函数:从字符串中读取指定格式的数据&&C语言strtok()函数:字符串分割
- c++中怎么分割字符串之strtok 函数
- C语言strtok()函数:字符串分割
- C/C++如何把一个特定分隔符分割的字符串划分为一个字符串数组,strtok(char *,char*)分割函数
- 字符串分割函数strtok备忘笔记
- C实现分割字符串(使用strtok_s函数,完成C#的Split函数功能)
- C语言strtok()函数:字符串分割
- C语言:使用strtok_s()函数简单分割字符串
- C语言strtok()函数:字符串分割
- strtok、strtok_s、strtok_r 字符串分割函数
- C/C++分割字符串:strtok函数
- C语言中strtok函数进行分割字符串!
- lr中用strtok函数分割字符串
- strtok:字符串分割函数