来自https://www.cnblogs.com/jm-Xu/p/9318705.html

string(s小写)是C++标准库中的类,纯C中没有,使用时需要包含头文件#include<string>

 string的定义及初始化
string s1 = "hello"; //初始化字符串
string s2 ("world"); //另一种初始化 string s3; //初始化字符串,空字符串 string s4(, 'a'); //s4由连续5个a组成,即s4="aaaaa";
string s5(s1,,); //从s1的2位置的字符开始,连续3个字符赋值给s5,即s5="llo";
string s6(s1, ); //从s1的2位置的字符开始,将后续的所有字符赋值给s6,即s6="ello";
 重载的运算符
此处列举一下被重载的运算符,基本意思一目了然。其中注意“+”操作
s1 = s2;
s1 += s2;
s1 = s2 + s3;
s1 == s2;
s1 = "s" + s2; //正确
s1 = "s" + "s"; //错误,加号两边至少要有一个string类型的对象
s1 = "s" + s2 + "s" + "s"; //正确 “+”的两边要保证至少有一个string类型,所以5正确,6错误。由于在C/C++中,+的返回值还是原类型,所以第7行中,"s"+s2返回一个string类型,因此string+“s”也是正确的,
 遍历string(迭代器)
遍历string中的元素时,我们可以使用类似C中的数组形式访问,如s1[](下标从0开始) 也可以使用STL特有的迭代器访问:
string::iterator it;
for (it = s1.begin(); it != s1.end(); it++){
cout << *it << endl;
} cout << *(s1.begin()); //正确,即访问s1[0]
cout << *(s1.end()); //错误,s1.end()指向了空
若想要从后向前遍历string时,可以用到rbegin()和rend()函数。
(参考vector博文)

 插入insert()
string s1 = "hello";
s1.insert(,"ins"); //从s1的1位置开始,插入"ins"字符串,即s1="hinsello";
s1.insert(, "ins", );//从s1的1位置开始,插入"ins"字符串的前2个字符,即s1="hinello";
s1.insert(, "ins", , );//从s1的1位置开始,插入"ins"字符串的从1位置开始的2个字符,即s1="hnsello"; iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置
 删除erase()
iterator erase(iterator first, iterator last);//删除[first,last)之间的所有字符,返回删除后迭代器的位置
iterator erase(iterator it);//删除it指向的字符,返回删除后迭代器的位置
string &erase(int pos = , int n = npos);//删除pos开始的n个字符,返回修改后的字符串 查找 find()
cout << s.find("aa", ) << endl; //返回的是子串位置。第二个参数是查找的起始位置,如果找不到,就返回string::npos
if (s.find("aa1", ) == string::npos)
{
cout << "找不到该子串!" << endl;
}

C++常用string函数的更多相关文章

  1. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  2. string类(二、常用string函数)

    常用string相关,参至System.String类: 1/ string.Length a.Length字符串长度 string a="a5"; //a.Length==2 s ...

  3. 常用string函数分析

    string函数分析string函数包含在string.c文件中,经常被C文件使用.1. strcpy函数原型: char* strcpy(char* str1,char* str2);函数功能: 把 ...

  4. php常用string函数

    http://www.w3school.com.cn/php/php_ref_string.asp1.addcslashes() 返回在指定的字符前添加反斜杠的字符串2.addslashes() 返回 ...

  5. string中常用的函数

    string中常用的函数 发现在string在处理这符串是很好用,就找了一篇文章放在这里了.. 用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重1.De ...

  6. string常用成员函数

    string常用成员函数 std::string::clear Clear string Erases the contents of the string, which becomes an emp ...

  7. php常用字符串函数小结

    php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...

  8. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  9. c++:string函数

    string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持 ...

随机推荐

  1. [转帖]浙江移动容器云在ARM服务器的实践

    浙江移动容器云在ARM服务器的实践 2019-07-11 22:27 中文社区 分类:Kubernetes实践分享/开发实战 阅读(427) 评论(0)  国产ARM服务器上面跑K8S集群.. 貌似浪 ...

  2. mysql一个SQL案例

    需求 : 测试数据 ),start1 int,end1 int); ,); ,); ,); ,); ,); ,); 解决: 解决2: 解决代码 核心思想,把符合逻辑条件的行,构造相同分组 select ...

  3. 用Python快速找到出现次数最多的数据

    给你一个文件,每行一个iip?

  4. # 「NOIP2010」关押罪犯(二分图染色+二分答案)

    「NOIP2010」关押罪犯(二分图染色+二分答案) 洛谷 P1525 描述:n个罪犯(1-N),两个罪犯之间的仇恨值为c,m对仇恨值,求怎么分配使得两件监狱的最大仇恨值最小. 思路:使最大xxx最小 ...

  5. Linux: cp 复制文件、文件夹到文件夹

    参数 a 该选项通常在拷贝目录时使用.它保留链接.文件属性,并递归地拷贝目录,其作用等于dpR选项的组合. d 拷贝时保留链接.    f 删除已经存在的目标文件而不提示.    i 和f选项相反,在 ...

  6. linux环境下tomcat启动成功,部分请求页面出现404

    这种情况很多,本文记录我遇到比较奇葩的情况. 第一种情况: 第一次tomact启动成功,访问404,乱捣鼓不知怎么好了:第二次tomcat启动成功,可以访问部分链接,有些却报404,但是代码和数据都还 ...

  7. Task的取消

    原文:.NET 4 并行(多核)编程系列之三 从Task的取消 .NET 4 并行(多核)编程系列之三 从Task的取消 前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并行编程 ...

  8. selenium自动化测试工具模拟登陆爬取当当网top500畅销书单

    selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制 ...

  9. TensorFlow入门——安装

    由于实验室新配了电脑,旧的电脑就淘汰下来不用,闲来无事,就讲旧的电脑作为个人的工作站来使用. 由于在旧电脑上安装的是Ubuntu 16.04 64bit系统,系统自带的是Python 2.7,版本选择 ...

  10. Linux上安装postgres 10.5

    由于接触了华为的elk大数据平台,里面封装的是postgres ,就想着安装一下,熟悉一下postgres数据. 安装包下载:https://www.postgresql.org/ftp/source ...