算法19:实现 char* strtok(char* str, const char* delimeter)
来源:互联网 发布:树莓派3 有线网络 编辑:程序博客网 时间:2024/05/08 02:19
算法分析
strtok是用来分隔字符串,首次使用strtok时,str指向待分隔的字符串;后续调用要将str置为NULL,直至返回值为NULL。
因此,需要一个static变量指向str变量。
c++代码
//str:待分隔的源字符串//delimeter:分隔符char* strtok(char* str, const char* delimeter){ //静态变量,指向带分隔的源字符串 static char* staticStr = NULL; //指向分隔符的指针 const char* pDelimeter = NULL; //返回值 char* pRetStr = NULL; //标志位 bool bFind = false; if(str != NULL) { staticStr = str; } if(*staticStr == '\0') { return NULL; } pRetStr = staticStr; while(*staticStr != '\0') { for(pDelimeter = delimeter; *pDelimeter != '\0';pDelimeter++ ) { if(*pRetStr == *pDelimeter) { pRetStr++; break; } if(*staticStr == *pDelimeter) { bFind = true; *staticStr = '\0'; } } staticStr++; if(bFind) { break; } } return pRetStr;}
测试代码
int _tmain(int argc, _TCHAR* argv[]){ char data[20] = "salfgdfogffhe"; char* result = strtok(data,"gd"); cout<<result<<endl; while(result != NULL) { result = strtok(NULL,"gd"); if(result != NULL) { cout<<result<<endl; } } return 0;}
0 0
- 算法19:实现 char* strtok(char* str, const char* delimeter)
- char str[], const char str[], const char *str区别
- const char *str, char *str, char str[]讨论
- int atoi(const char *str)库函数实现
- char * strchr (const char *str, int c);
- char *strtok(char *s, const char *delim) 用法
- int atoi(const char * str)
- int strlen(const char *str)
- char * const p,char const *p,char *str,char str[]的相关问题
- char *strdup(char *str)
- c++ 字符串分割一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:
- [C++杂记] char *str会默认为const char *str
- const char & char const
- const char* char*const
- char *str 和 char str[]
- char*str与char str[]
- char* , const char* , char [] , const char []
- const char*,char *const,const char*const
- hdfs的安全模式
- C++中类的各种继承方法
- 2017.3.1word中如何改变所有的英文字母和数字的字体
- android源码设计模式解析与实战 笔记 4.8节
- LEADTOOLS v19更新发布文档和医疗功能,增加Visual Studio 2017兼容性!
- 算法19:实现 char* strtok(char* str, const char* delimeter)
- ubuntu16.04安装中文输入法
- java端报表工具jxsl封装好的jar包
- 程序猿_你为什么值这么多钱?
- Linux部署java项目,mysql数据库,项目启动报错,表....don't exist...
- Web.xml配置详解之context-param
- c++作业3
- 页面加载报各种插件包406的错误
- 非常有用的Java代码片段(持续更新......)