C++字符串常见操作函数最全总结

C++字符串常见操作函数最全总结在做题过程中经常用到字符串,有时候费了很大力气去写一个函数,结果最后发现C++已经封装好了此类函数。。。所以花点时间总结一下。

大家好,又见面了,我是你们的朋友全栈君。

在做题过程中经常用到字符串,有时候费了很大力气去写一个函数,结果最后发现C++已经封装好了此类函数。。。所以花点时间总结一下,这里参考了:http://www.cplusplus.com/reference/

1、构造函数:
string str:空串,string s(str)复制str到s,string s(num,c)生成由num个c字符构成的字符串。

2、插入函数:
有两种push_back()和insert(),后者比较常用。
push_back():尾部插入一个字符,例如s.push_back(‘p’);
insert():例如s=“abcddss”,执行s.insert(s.begin(),‘i’)后在位置0前插入’i’变成”iabcddss”。

3、遍历:
借助迭代器或者下标,下标比较常用。迭代器分两种:正向和反向。
正向:string::iterator it=s.begin();it!=s.end();it++;
反向:string::reverse_iterator it=s.rebegin();it!=s.rend();it++;
其中*it表示该位置的字符。下标与字符数组一样,不再赘述。

4、查找:
1)、查找一个字符串:s.find(ss),找到返回ss在s中的起始位置,否则返回-1;
2)、从某一个位置开始查找某个字符:s.find(‘t’,6),从s的位置6开始查找字符’t’,找到则返回位置,否则返回-1;注意1)和2)都是返回第一次找到的位置;
3)、从末尾开始查找某个字符:s.rfind(‘t’);
4)、从某个位置开始查找第一个不属于s1的字符位置,例如s=“cdcdscds”,s1=“cdcdfff”,s.find_first_not_of(s1)=4,s的位置4字符不属于s1,类似的还有查找第一个属于s1的字符的位置,去掉not就好。

5、排序:
sort(s.bgein(),s.end());

6、分割截取:
有两个函数:substr()与strtok()。
s.substr(2,5)为s从2位置开始的5个字符组成的子串。
strtok()函数原型:char *strtok(char *s,const char *delim)
函数功能:分解字符串为一组字符串,s为要分解的字符串,delim为分隔字符串。

const char *split=",;!";
char *p=strtok(str,split); 
 while(p!=NULL) { 
      
    cout<<p<<'\n';   
    p=strtok(NULL, split);   
 } 
//按照分隔符",:!"来分割字符串str  
 return 0;   

7、删除:
erase()函数,例如s=“12345678”,s.erase(s.begin()+3)后变为”1235678″,即把位置3的字符删掉。

8、替换:
repalce()函数:s.replace(pos,len,ss),将s从pos开始的len个字符替换成ss,
s.replace(pos,n1,n2,c),将s从pos开始的n1个字符替换成n2个字符c

9、大小写转换:
tolower()和toupper()。循环遍历字符串的每一个位置s[i]=tolower(s[i]),大写转小写,或者s[i]=toupper(s[i]),小写转大写。
这里其实推荐用STL中的transform()函数,具体用法如下:
transform(s.begin(),s.end(),s.begin(),::tolower)大写转小写,小写转大写类似。

10、比较函数:
string支持<,>,<=, >=, ==, != 等操作。
compare()函数专门用做string的比较函数,s.compare(ss)=0说明ss == s,返回1表明s>ss,返回-1表明s<ss。

11、拼接函数:
c++的string支持直接相加,“cdd”+“sss”=“cddsss”。另外s.append(ss)表示在s最后加上ss,等同于s+=ss。

  欢迎大家关注我的微信公众号:KI的算法杂记,有什么问题可以直接发私信。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134161.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • win10 python环境_win10安装python

    win10 python环境_win10安装pythonWin10下的Python环境配置原料64位Windows10专业版安装Python访问python的官方网站www.python.org,点击download,如图一选择2.7版本,如图二下载好图三所示文件双击打开上述安装程序,选择是否给所有用户使用,默认是给全局,点Next选择安装路径,选好后Next选择要安装的模块,默认即可,Next安装完了,点击Finash去安装目录看一下目录结构

  • lrzsz安装

    lrzsz安装当服务器没有安装FTP等工具上传文件时,可以通过rz上传文件,sz文件名进行下载文件,默认下载路径为:C:\Users\用户\Downloads,安装如下:yuminstalllrzsz-y转载于:https://www.cnblogs.com/heruiguo/p/8417031.html…

  • LoadRunner教程03:界面分析[通俗易懂]

    LoadRunner教程03:界面分析[通俗易懂]一、virtualusergeneratorLoadRunner拥有各种Vuser类型,每一类型都适合于特定的负载测试环境。这样就能够使用Vuser精确模拟真实世界的情形。Vuser在方案中执行的操作是用Vuser脚本描述的。Vuser脚本的结构的内容因Vuser类型的不同而不同。注意:VuGen仅能录制Windows平台上的会话。但录制的Vuser脚本既可以在Window平台上运

  • Yarn安装配置(vsftpd安装配置)

    Yarn介绍:Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快。 Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。 超级安全,在执行代码之前,Yarn会通过算法校验每个安装包的完整性。 超级可靠,使用详细、简洁的锁文件格式和明确的安装算法,Yarn能够保证在不同系统上…

  • Xshell修改终端字符编码【解决Linux日志中日志乱码】

    Xshell修改终端字符编码【解决Linux日志中日志乱码】

  • SpringCloud系列之客户端负载均衡Netflix Ribbon

    SpringCloud系列之客户端负载均衡Netflix Ribbon

    2020年11月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号