STL string
1、初始化-把c字符串转换成string
char s[]="abc e df";
string str=s;
string str(5,'x');//初始化为5个x
2、查找
从前开始搜索:str.find(目标子串,开始搜索位置)
从后开始搜索:str.rfind
如查找不到目标,则返回string::npos
3、替换
str.replace(开始下标,覆盖长度,替代字符串,可加<使用代替字符串长度>)
当覆盖长度填为0时,其实就是插入操作。
4、删除
str.erase(开始下标,删除长度)
5、插入
str.insert(开始下标,插入字符串)
6、比较
str.compare(与str对比的字符串)
-1为str小,1为str大,0为相等。如果前段相等短的小。
7、返回c风格字符串
str.c_str();//返回值是const char*
8、分割
string substr (开始下标,截取长度);
c风格字符串
1、分割
char *p=strtok(s,d);//第一次得到结果,s为目标串,d为tok
while(p){
cout<<p<<endl;
p=strtok(NULL,d);//得到后续结果,目标串用NULL代替
}
2、比较
strcmp(s1,s2); //-1为s1小,1为s2小,0为相等。如果前段相等短的小。
3、连接(加到目标串尾部)
char strcat(char dest,char *src);
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符
串。
4、复制
char strcpy(char dest,char *src);
把src的字符串连\0复制到dest,必须保证dest有足够空间。
5、长度
unsigned int strlen(char *s);
计算字符串s的(unsigned int型)长度,不包括结束符\0。
6、字符串与数字的转换
itoa(int i,char *p result,进制),一般进制填10,表示十进制。
任意的小数整数转字符串,都可以用sprintf(result,格式"%d",i)
对于字符串转数字,atoi和atof使用就比较简单了,直接传入需要转换的数字即可。
自行封装函数:
https://github.com/iyjhabc/simple_algorithm
/*把strBig包含的strsrc替换成strdst*/
void string_replace(string & strBig, const string & strsrc, const string
&strdst) {
string::size_type pos=0;
string::size_type srclen=strsrc.size();
string::size_type dstlen=strdst.size();
while( (pos=strBig.find(strsrc, pos)) != string::npos){
strBig.replace(pos, srclen, strdst);
pos += dstlen;
}
}
void string_replace(char *strBig, const char *strsrc, const char *strdst)
{
string strtmp(strBig);
string::size_type pos=0;
string::size_type srclen=strlen(strsrc);
string::size_type dstlen=strlen(strdst);
while( (pos=strtmp.find(strsrc, pos)) != string::npos){
strtmp.replace(pos, srclen, strdst);
pos += dstlen;
}
strcpy(strBig,strtmp.c_str());
}
原文链接: https://www.cnblogs.com/iyjhabc/archive/2013/05/10/3070789.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/87900
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!