c++中string常用用法详解(+例子部分代码)
小白笔记
文章目录
前言
一、string 字符串赋值
二、string 字符串的拼接
三、string 查找和替换
四、string 字符串比较(挨个字符的ASCLL码来进行对比)
五、string 字符存取
六、string插入和删除
七、string子串
八、string长度
前言
string 在cpp中相当于一个字符串类,类里面的是char*,类里所维护的是一个字符串。
一、string 字符串赋值
string 字符串赋值
string()无参构造函数,string str = 字符串;string(const *char)有参构造函数,直接赋值相当于;string(const string &str)使用一个string对象初始化另一个string对象
另一个字符串赋值的assign函数
string str ; str.assign(const char* c )把某个字符串赋值给str
string str ; str.assign(const char *c , int n )把某个字符串前n个字符赋值给当前字符串
string str ; str.assign(const string & s ) 把某string类型的字符串赋值给str
string str ; str.assign(int n , char c)给str字符串输入n个c字符进行赋值
二、string 字符串的拼接
string 字符串的拼接
string+= (字符串)+=(字符)+=(string类型的字符串)直接在后面添加,相当于字符串长度增加,在后面添加
另一个字符串拼接的append函数
string str ; str.append(const char *s)把字符串添到str结尾
string str ; str.append(const char *s , int n )把字符串s前n个字符添到str结尾
string str ; str.append(const string &s)把string类型的字符串添到str的结尾(效果同str+=s)
string str ; str.append(const string &s , int pos , int n )把string类型的字符串从pos这个下标开始的n个字符添到str的结尾
三、string 查找和替换
string 查找和替换
find函数,会返回一个整型值(返回下标位置)rfind从后面进行查找,同样返回一个整型值
find(const string& str , int pos = 0 )const,查找str在字符串中第一次出现的位置,从pos开始进行查找;rfind(const string& str , int pos = npos )const,是从字符串后往前进行查找,即str最后一次出现的位置,从pos开始进行查找,这里pos相当于字符串末端
例子
string str1 ="abcdeabcde" ; string str2 = "ab"; int pos1 = str1.find(str2); int pos2 = str1.rfind(str2);
那么pos1值就是0,pos2值就是5
find(const char*s , int pos = 0 )const,rfind(const char*s , int pos = npos )const与上面意思相同
find(const char c , int pos = 0 )const,rfind(const char c , int pos = npos )const与上面的意思相同,就是查找里面的字符串变成了查找里面的字符了
find(const char*s , int pos , int n )const,意思是从pos处往后查找,从原字符串进行查找字符串s前n个字符,rfind(const char*s , int pos , int n )const,意思是从pos往前查找,从原字符串进行查找字符串s前n个字符
replace函数replace(int pos , int n , const string &str)(其中string& str 可以换成char* s一个意思)
该函数功能是把目标字符串从下标pos位置开始,n个字符,替换成字符串str(或s)
例如
string str = "abcdef" ; str.replace(1,3,"1111");cout<<str<<endl;
刚开始学的时候确实很琢磨是替换了三个1还是替换了四个1,这个时候记住定义,把原来的字符串从下标pos位置开始,n个字符全部替换成要求的字符串,就是从b开始,bcd全部被替换成了1111,所以Output是a1111ef
四、string 字符串比较(挨个字符的ASCLL码来进行对比)
string 字符串比较(挨个字符的ASCLL码来进行对比)
compare函数,返回一个整型数值,compare函数是字符串之间进行比较,按字符的ASCLL码来进行挨个比较,int compare(const string &s)const与字符串s进行比较(其中string& s可以换成char* s一个意思)
如果原字符串与字符串s相等,则返回0
如果原字符串与字符串s大,则返回1
如果原字符串与字符串s小,则返回-1
判断的依据是挨个字符进行ASCLL码来进行比较,若有差异则直接返回
例如
string str1 = "c";string str2 = "aaaaa";cout<<str1.compare(str2)<<endl;
Output是1
五、string 字符存取
string 字符存取
通过[]来访问或者修改单个字符
string str = "hello"; for(int i = 0 ; i < str.size();i++) cout<<str[i]<<" "; cout<<endl;
str[0] = 'x';cout<<"str = "<<str<<endl;
Output:
h e l l o
xello
通过at方式来进行单个字符的访问或者修改
string str = "hello";for( int i = 0 ; i < str.size();i++)cout<<str.at(i)<<" ";cout<<endl;
str.at(1) = 'x';cout<<"str = "<<str<<endl;
Output:
h e l l o
hxllo
六、string插入和删除
string插入和删除
insert函数,来进行插入
string& insert(int pos,const char*s);在下标为pos处与下标为pos-1处之间,插入字符串(其中char*s 和string& str都是字符串的意思)
例如
string str1 = "abcdefg";str1.insert(2,"haha");cout<<str1<<endl;
Output:
abhahacdefg
string& insert(int pos , int n , char c);在下标为pos处插入n个字符c
erase函数,来进行删除
string& erase(int pos, int n = npos);删除从下标为pos开始的n个字符
例如
string str2 = "abcdefg"; str2.erase(2,2);cout<<str2<<endl;
Output:
abefg
七、string子串
string子串
string substr(int pos = 0 , int n = npos)const;返回由pos开始的n个字符组成的字符串(包括下标为pos的字符),那么从零开始的话就是截取到下标为n-1的字符
例如(生活实例)
string str = "1308u103@wanfo.com";//假设邮箱
int pos = str.find('@');
string userName = str.substr(0,pos);
cout<<userName<<endl;
Output:
1308u103
八、string长度
string长度
可以用size()和length()来进行判断长度
两者在string中没有任何区别
string str = "abcde";int a = str.size();int b = str.length();结果是a=b
在正常情况下,一般来说size()一般用作返回容器大小的方法,length()一般用作返回一个序列的长度
c++中string常用用法详解(+例子部分代码)相关推荐
- java中String的用法详解
在这里先分别对String.StringBuffer.StringBuilder进行解析,在比较三者异同 String String类:代表字符串.Java程序中所有的字符串字面值(如"fd ...
- C#中string.format用法详解 格式字符串
string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...
- c语言 append,对C++ string append方法的常用用法详解
C++ string append()添加文本 使用append()添加文本常用方法: 直接添加另一个完整的字符串: 如str1.append(str2); 添加另一个字符串的某一段子串: 如str1 ...
- JSP 中EL表达式用法详解
EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...
- c++ memset 语言_C++中memset函数用法详解
本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...
- python中的super用法详解_【Python】【类】super用法详解
一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...
- python中的super用法详解_Python中super函数用法实例分析
本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...
- STL 中map的用法详解
STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...
- mysql in从数据库取数_MySQL数据库中 where in 用法详解
本文主要向大家介绍了MySQL数据库中 where in 用法详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这里分两种情况来介绍 WHERE column IN (valu ...
最新文章
- activemq 消息阻塞优化和消息确认机制优化
- [导入][翻译]匈牙利命名法的缺点
- IOS第四天-新浪微博 -存储优化OAuth授权账号信息,下拉刷新,字典转模型
- 详细讲解Android中的Message的源码
- php星座判断源码,php根据日期判断星座的函数分享
- DCMTK:测试DcmSCP和DcmSCU类
- 计算机应用基础0006 19秋在线作业2,川大《计算机应用基础0006》13春在线作业2
- eclipse 重构_Eclipse对类固醇的重构
- 判断浏览器版本语句大全
- 【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证
- jquery对文本赋值和取值_jQuery对表单元素的取值和赋值操作代码
- GridView 点滴
- 大数据_Flink_Java版_数据处理_流处理API_Transform(3)_Reduce聚合算子---Flink工作笔记0031
- apache 2.4.4 自动分割日志,按年月日生成
- matlab 包落,怎样在MATLAB中划出一个函数的包络线?
- 用c语言编写的迷宫游戏代码,C语言编写的迷宫小游戏 源代码
- 各种类型的电影排行榜-movie路线
- delphi 剪切板变量_Delphi操作剪贴板
- erlang ets源码实现浅析
- 负面营销 —— 是饮鸩止渴还是引爆流量