小白笔记

文章目录

前言

一、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常用用法详解(+例子部分代码)相关推荐

  1. java中String的用法详解

    在这里先分别对String.StringBuffer.StringBuilder进行解析,在比较三者异同 String String类:代表字符串.Java程序中所有的字符串字面值(如"fd ...

  2. C#中string.format用法详解 格式字符串

    string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...

  3. c语言 append,对C++ string append方法的常用用法详解

    C++ string append()添加文本 使用append()添加文本常用方法: 直接添加另一个完整的字符串: 如str1.append(str2); 添加另一个字符串的某一段子串: 如str1 ...

  4. JSP 中EL表达式用法详解

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  5. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  6. python中的super用法详解_【Python】【类】super用法详解

    一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...

  7. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  8. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  9. mysql in从数据库取数_MySQL数据库中 where in 用法详解

    本文主要向大家介绍了MySQL数据库中 where in 用法详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这里分两种情况来介绍 WHERE column IN (valu ...

最新文章

  1. activemq 消息阻塞优化和消息确认机制优化
  2. [导入][翻译]匈牙利命名法的缺点
  3. IOS第四天-新浪微博 -存储优化OAuth授权账号信息,下拉刷新,字典转模型
  4. 详细讲解Android中的Message的源码
  5. php星座判断源码,php根据日期判断星座的函数分享
  6. DCMTK:测试DcmSCP和DcmSCU类
  7. 计算机应用基础0006 19秋在线作业2,川大《计算机应用基础0006》13春在线作业2
  8. eclipse 重构_Eclipse对类固醇的重构
  9. 判断浏览器版本语句大全
  10. 【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证
  11. jquery对文本赋值和取值_jQuery对表单元素的取值和赋值操作代码
  12. GridView 点滴
  13. 大数据_Flink_Java版_数据处理_流处理API_Transform(3)_Reduce聚合算子---Flink工作笔记0031
  14. apache 2.4.4 自动分割日志,按年月日生成
  15. matlab 包落,怎样在MATLAB中划出一个函数的包络线?
  16. 用c语言编写的迷宫游戏代码,C语言编写的迷宫小游戏 源代码
  17. 各种类型的电影排行榜-movie路线
  18. delphi 剪切板变量_Delphi操作剪贴板
  19. erlang ets源码实现浅析
  20. 负面营销 —— 是饮鸩止渴还是引爆流量

热门文章

  1. bigemap如何切换外网IP地址
  2. 接口测试:HTTP协议中的状态码
  3. java 双向链表循环_双向循环链表的Java版本实现
  4. android中handler机制,如何使用?,Android中的Handler机制
  5. C语言输出数组的三种方法
  6. 长按安卓可以识别二维码ios无法识别的原因
  7. CrackMe 之 006
  8. Linux系统简介与深度解析
  9. android8抓包
  10. python将矩阵存为lmdb文件