C++常用的字符串处理函数-全
来源:互联网 发布:pc mac os x 编辑:程序博客网 时间:2024/06/12 22:23
这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出
包括:split
string to int
int to string
join
#include <string.h>#include <vector>#include <string>//字符串分割函数,类似python的splitvector<string> split(char s[],const char *delim){ char *token = strtok(s,delim); vector<string> vstr; while(token!=NULL){ string stmp = token; vstr.push_back(stmp); token = strtok(NULL,delim); } return vstr;}//若用string调用如下 string s="192.168",sm="."; vector<string> ss=split(const_cast<char *>(s.c_str()),sm.data());//参数都为string版vector<string> split(string s,string delim){ char *ss=const_cast<char *>(s.c_str()); const char *ddelim= delim.data(); char *token = strtok(ss,ddelim); vector<string> vstr; while(token!=NULL){ string stmp = token; vstr.push_back(stmp); token = strtok(NULL,ddelim); } return vstr;}//以下给出类似于Python 中join功能的实现,后续不断完善string join(const vector<string> &vs,const string &s){ int n=vs.size(); string restr; for(int i=0;i<n-1;++i)restr=restr+vs[i]+s; restr +=vs[n-1]; return restr;}//char *或vector<char>转stringvector<char> vs;vs.push_back(char);vs.push_back('\0'); //特别注意char* 转string s;s=string(vs.data());char a[100]="6666666";s=string(a);//列出自己实现的string to int( atoi)int myAtoi(string str) { if(str=="")return 0; if(str.size()==1) { if(str[0]>'9'||str[0]<'0')return 0; } int beg=0; while(str[beg]==' ')beg++;//越过前面的空字符 if((str[beg]>'9'||str[beg]<'0')&&str[beg]!='-'&&str[beg]!='+')return 0;//第一个非空字符非法 int sign=(str[beg]=='-')?-1:1; //判断符号 int j=(str[beg]=='+'||str[beg]=='-')?beg+1:beg;//判定何时开始计算 int res=0; for(int i=j;i<str.size();++i) { if(str[i]>'9'||str[i]<'0')break;//遇到非数字即不看后面的内容 res=res*10+(str[i]-'0'); } return res*sign;}//列出自己实现的unsigned int转string,无bugstring itostring(unsigned int a){ if(a==0)return "0"; vector<char> vc; while(a){ unsigned int tmp = a%10; vc.push_back(tmp+'0'); a=a/10; } int n=vc.size(); string s(n,'0'); for(int i=n-1;i>=0;--i)s[n-1-i]=vc[i]; return s; }//atoi 或者 itoa (int to string)int atoi(const char *nptr);char*itoa(int value,char*string,int radix);char *strtok(char s[], const char *delim);//strod字符串转浮点string = "3.1415926 This stopped it";x = strtod(string, &stopstring);printf("string = %s\n", string);printf("strtod = %f\n", x);printf("Stopped scan at: %s\n", stopstring);string = 3.1415926 This stopped itstrtod = 3.141593Stopped scan at: This stopped itstring = -1011 This stopped it1. const char* 和string 转换(1) const char*转换为 string,直接赋值即可。 EX: const char* tmp = "tsinghua". string s = tmp;(2) string转换为const char*,利用c_str()或者data() EX: string s = "tsinghua"; const char*tmp = s.c_str(); const char *tmp = s.data();2. char*和const char*之间的转换(1) const char*转化为char*,利用const_cast<char*> EX: const char* tmp = "tsinghua"; char* p = const_cast<char*>(tmp);(2) char*转化为const char*,直接赋值即可。 char* p = "tsinghua". const char* tmp = p;3. char*和string之间的转换 有了1和2的基础,char*和string转化就很简单了。(1)char*转化为string,直接赋值即可。 EX: char* p = "tsinghua". string str = p;(2)string转化为char*,走两步,先是string->const char*,然后是const char*->char* EX: string str = "tsinghua"; char* p = const_cast<char*>(str.c_str()):
0 0
- C++常用的字符串处理函数-全
- C/C++常用的字符串处理函数
- C字符串常用处理函数
- C字符串常用处理函数
- C常用字符串处理函数
- c常用字符串处理函数
- C字符串处理函数小全
- C语言字符串处理的几个常用函数
- C语言中常用的几个字符串处理函数:
- c语言中常用的字符串处理函数
- c语言中常用的字符串处理函数
- C语言学习笔记之常用的字符串处理函数
- C语言中常用的字符串处理函数
- C语言常用的字符串处理函数详解!!!!!!!
- C中常用的字符、字符串处理函数
- 常用的字符串处理函数
- 字符串处理的常用函数
- 常用的字符串处理函数
- pdo_mysql 安装
- 数据可视化指南(干货)
- java代码工具--Date格式化
- iOS自定义弹窗(UIView)
- 第十周项目五 摩托车继承自行车和机动车
- C++常用的字符串处理函数-全
- .h和.cpp文件的区别
- STM32F4学习笔记5——SysTick定时器
- Android系统服务-WindowManager
- 第7周 C语言程序设计(新2版) 练习1-10 输入复制到输出,三种格式替换
- 【mybatis源码分析】原理分析之二:框架整体设计
- 字符编码
- Qt中QString的比较
- Android 70道面试题汇总不再愁面试