string类常用成员函数

(1)求长度

int length(); int size(); //求长度

(2)比较2个字符串 strcmp(s1,s2) == 0

直接用运算符 < > = = != <= >=

(3)字符串复制 strcpy(s1,s2); s2->s1

可直接用运算符 =

(4)字符串连接 strcat(s1,s2); s1 + s2 -> s1

直接用运算符 + 进行连接

(5)空串判断

bool empty(); //判断是否为空串

(6)子串 substr();//求字串(重点)

string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串

int main (){string s = "hello, world!";string ss1 = s.substr(2);     //llo, world!string ss2 = s.substr(2,3);       //llocout << ss1 << endl << ss2 << endl;
}

(7)erase();//删除若干个字符(重点)

string &erase(int pos = 0, int n = npos);//删除pos开始的n个字符,返回修改后的字符串,源字符串也被修改

注意:::原来的s也会改变;

int main (){string s = "hello,world!";string ss1 = s.erase(6);   //删除下标为6的字符开始的所有字符,hello,string ss2 = s.erase(1,2);    //删除下标为2的字符开始的2个字符,删除el cout << s << endl << ss1 << endl << ss2 << endl;
}

(8)insert();//插入字符

 string s=",";s.insert(0,"heo"); cout<<s<<endl;//整个字符串s.insert(4,"world",2); cout<<s<<endl;//world的前2个字符s.insert(2,2,'l');cout<<s<<endl;//插入单个字符2次 s.insert(s.end(),'r');cout<<s<<endl;//使用迭代器s += "ld!";cout<<s<<endl;//在开头或者末尾插入最好还是运算符

注意:::是在下标为i前面加;

(9)replace();//替换字符(重点)

用法一:用str替换指定字符串从起始位置pos开始长度为len的字符

string& replace (size_t pos, size_t len, const string& str);

#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "abcdefghigk";str=str.replace(str.find("c"),2,"#");  //从第一个a位置开始的两个字符替换成#cout<<str<<endl; return 0;
}

用法二: 用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串

string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);

#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";string substr = "12345";str=str.replace(0,5,substr,substr.find("1"),4); //用substr的指定字符串替换str指定字符串cout << str << endl;return 0;
}

(10)find系列函数;//查找字串

C++中string的find()函数的用法(列题见F - All in All UVA - 10340 )

string的find()函数用于找出字母在字符串中的位置。

s.find(str,position)

find()的两个参数:

str:是要找的元素

position:字符串中的某个位置,表示从从这个位置开始的字符串中找指定元素。

可以不填第二个参数,默认从字符串的开头进行查找。

返回值为目标字符的位置,当没有找到目标字符时返回string::npos。(或-1)

数组的find(pos,pos+n,x)用法与string的不同

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef  long long ll;
int main(){int a[10]={1,2,3,4,5,6};string s="abcdefg";cout << find(a,a+10,3)-a << endl;cout << s.find('e') << endl;cout << s.find("bcd") << endl;cout << s.find('e',4) << endl;//从下标为4开始搜索,输出-1;return 0;
}

reverse()函数的使用

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef  long long ll;
int main(){char a[8]={"abcdefg"};string s="abcdefg";cout << "string reverse用法:reverse(s.begin(),s.end());" << endl;reverse(s.begin(),s.end());cout << s << endl; cout << "字符串数组 reverse用法:reverse(a,a+10);" << endl;reverse(a,a+7); for(int i=0;i<7;i++){cout << a[i];}return 0;
}

string 的STL中sort使用

sort(s.begin(),s.end());

string类的常用函数(总结)相关推荐

  1. string类的常用函数

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

  2. string类的各种函数用法

    标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...

  3. C++ string类和常用接口的实现

    目录 C++ string类 string类的常用接口说明 string类(实现常用接口) C++ string类 值得注意的是 , string不是STL的容器,string是basic_strin ...

  4. Python 批量创建线程及threading.Thread类的常用函数及方法

    在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...

  5. 17.Java常用实用类之String类中常用的方法以及一般应用场景,final关键字

    文章目录 1.String类学习 1.1.什么是String类 1.2.String类中常用的方法 1.2.1. 构造方法 1.2.2.public int length() 1.2.3.public ...

  6. C语言<string.h>常用函数整理

    整理了string.h中常用的几个函数,仅供参考! 1.strcpy() 2.memcpy() 3.strcat() 4.strchr() 5.strstr() 6.strcmp() 7.memcmp ...

  7. Qt QString类及常用函数功能详解

    QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...

  8. string类的erase函数属于stl吗_C++ STL快速入门

    C++ STL中最基本以及最常用的类或容器无非就是以下几个:在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表.队列等,第一次接触C++ ...

  9. JAVA中String的一些常用函数用法总结

    最常用的就是Length()函数了, String s=""; int i=s.length(); i结果为0. 如果是String s=null; int i=s.length( ...

最新文章

  1. linux locale文件,Linux 怎样修改locale语言设置
  2. 中国治理蝗灾是生物防治的成就,根本不是靠鸡靠鸭靠吃货换来的!
  3. 深入理解Activity启动流程(三)–Activity启动的详细流程2
  4. php 扩展apc 参数优化
  5. [看书笔记]《深入java虚拟机》——java体系结构(二)
  6. Java学习总结(随笔)——利用JSON解析实现网络下载
  7. dbexception.java,mysql – org.h2.jdbc.JdbcSQLException:找不到列“ID”
  8. nodejs基础-函数
  9. 3D建模与处理软件简介 刘利刚 中国科技大学
  10. Secure CRT 配色方案
  11. matlab 矩阵平方怎么表示,MATLAB中如何输x的平方
  12. 文化网,武汉文化网,湖北文化网——炎黄文化常识
  13. scripts to compositions to videos
  14. 2020年11月-北京-今日头条面试题
  15. 一文搞懂H264量化原理以及计算过程
  16. 基于BLG7289的数码管可调时钟
  17. vue SEO的解决方案
  18. 第一章 数据与大数据
  19. matlab安装遇到的许可证问题
  20. 微软「感谢你,Harry!」沈向洋23年后离职,继续职业生涯新篇章

热门文章

  1. Python求解两数之和
  2. Hbuilder ios证书申请
  3. 【数智化人物展】鸿翼CTO罗永秀:以ECM企业内容管理点燃数智未来
  4. 阿里体育法定代表人变更 由张大钟变更为戴玮
  5. SDE、PM、DS等相关职位的面试题
  6. 你必须要学会的动态代理
  7. VMware 虚拟机与主机(本机)文件共享方法
  8. 深富策略:指数冲高回落3700点得而复失
  9. 富可视IN610 root教程_方法
  10. 计算机毕业设计Java博物馆交流平台(源码+系统+mysql数据库+lw文档)