string类的常用函数(总结)
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类的常用函数(总结)相关推荐
- string类的常用函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- string类的各种函数用法
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...
- C++ string类和常用接口的实现
目录 C++ string类 string类的常用接口说明 string类(实现常用接口) C++ string类 值得注意的是 , string不是STL的容器,string是basic_strin ...
- Python 批量创建线程及threading.Thread类的常用函数及方法
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- 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 ...
- C语言<string.h>常用函数整理
整理了string.h中常用的几个函数,仅供参考! 1.strcpy() 2.memcpy() 3.strcat() 4.strchr() 5.strstr() 6.strcmp() 7.memcmp ...
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- string类的erase函数属于stl吗_C++ STL快速入门
C++ STL中最基本以及最常用的类或容器无非就是以下几个:在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表.队列等,第一次接触C++ ...
- JAVA中String的一些常用函数用法总结
最常用的就是Length()函数了, String s=""; int i=s.length(); i结果为0. 如果是String s=null; int i=s.length( ...
最新文章
- linux locale文件,Linux 怎样修改locale语言设置
- 中国治理蝗灾是生物防治的成就,根本不是靠鸡靠鸭靠吃货换来的!
- 深入理解Activity启动流程(三)–Activity启动的详细流程2
- php 扩展apc 参数优化
- [看书笔记]《深入java虚拟机》——java体系结构(二)
- Java学习总结(随笔)——利用JSON解析实现网络下载
- dbexception.java,mysql – org.h2.jdbc.JdbcSQLException:找不到列“ID”
- nodejs基础-函数
- 3D建模与处理软件简介 刘利刚 中国科技大学
- Secure CRT 配色方案
- matlab 矩阵平方怎么表示,MATLAB中如何输x的平方
- 文化网,武汉文化网,湖北文化网——炎黄文化常识
- scripts to compositions to videos
- 2020年11月-北京-今日头条面试题
- 一文搞懂H264量化原理以及计算过程
- 基于BLG7289的数码管可调时钟
- vue SEO的解决方案
- 第一章 数据与大数据
- matlab安装遇到的许可证问题
- 微软「感谢你,Harry!」沈向洋23年后离职,继续职业生涯新篇章