当前位置:   article > 正文

C++ string类详解 适合零基础小白

c++ string

目录

1.string 介绍

2. 初始化

3.输入

4.修改string对象

5.substr截取字符串

6.插入

7.删除

8.替换

9.查找

10.其它操作

1.string 介绍

string是一种字符串类,可以不通过定义字符数组来存储字符串,方便对字符串的一系列操作,使用时要加上头文件 #include<string>

2. 初始化

(1)常量字符串构造

string str("Hello");

(2)拷贝构造

  1. string str("Hello");
  2. string s(str);

(3)拷贝构造的第二种方式

  1. string str("Hello");
  2. string s = str;

(4)string(size_type n,char c) :创建一个包含 n 个c的 string 对象

  1. string str(5,'a');
  2. cout<<str; //输出aaaaa

(5)部分拷贝构造

  1. string str("hello");
  2. string str2(str,2,3); //下标2开始的3个字符
  3. cout<<str2; //输出llo

3.输入

string的输入方式不止一种,每一种都有细微差别

(1)cin 键盘输入,会跳过开头的空白,直到遇到下一个空白为止

  1. string str;
  2. cin>>str; //输出abcd efg
  3. cout<<str; //输出abcd

(2)getline(cin,str) 读取一整行

  1. string str;
  2. getline(cin,str); //输出 abcd efg
  3. cout<<str; //输出 abcd efg

4.修改string对象

(1)通过'+'拼接两个对象

  1. string s1("hello");
  2. string s2("world");
  3. string str=s1+s2;
  4. cout<<str; //输出helloworld

(2)通过append()在末尾添加

  1. string str("hello");
  2. str.append("world");
  3. cout<<str; //输出helloworld

(3)通过push_back()在末尾添加一个字符

  1. string str("hello");
  2. str.push_back('a');
  3. cout<<str; //输出helloa

5.substr截取字符串

 (1)substr(pos,n) 返回从pos下标开始的n个字符,pos默认为下标0;n默认为s.size()-pos

  1. string str("hello");
  2. string str2=str.substr(2,3);
  3. cout<<str2; //输出llo

(2)substr(pos)

  1. string str("hello");
  2. string str2=str.substr(2);
  3. cout<<str2; //输出llo

6.插入

(1)迭代器位置插入单个字符

  1. string str("hello");
  2. str.insert(str.begin(),'a');
  3. cout<<str; //输出ahello

(2)迭代器位置插入多个字符

  1. string str("hello");
  2. str.insert(str.begin(),3,'a'); //插入3个a
  3. cout<<str; //输出aaahello

(3)在下标index前插入n个字符

  1. string str("hello");
  2. str.insert(2,3,'a');
  3. cout<<str; //输出heaaallo

(4)下标index前插入一个常量字符串或者string对象

  1. string str("hello");
  2. string s("abab");
  3. str.insert(2,s); //下标2处插入s
  4. cout<<str; //输出heababllo

(5)下标index前插入str中的从某一下标开始的n个字符

  1. string str("hello");
  2. string s("abab");
  3. str.insert(2,s,0,2); //下标2处插入s下标0开始的两个字符
  4. cout<<str; //输出heabllo

7.删除

(1)erase()删除全部

  1. string str("hello");
  2. str.erase(); //清空
  3. cout<<str; //输出空

(2)erase(pos,n) 删除下标pos开始的n个字符

  1. string str("hello");
  2. str.erase(2,2); //下标2开始的两个字符
  3. cout<<str; //输出heo

(3)erase(迭代器)

  1. string str("hello");
  2. str.erase(str.begin()); //删除开头一个字符
  3. cout<<str; //输出ello

8.替换

(1)replace(pos,n,s)从下标pos开始删除n个字符,删除后在下标pos处插入s

  1. string str("hello");
  2. string s("aaa");
  3. str.replace(2,2,s); //从下标2开始删除2个字符,删除后在下标2处插入s
  4. cout<<str; //输出 heaaao

(2)replace(pos,n,s,a,b)从下标pos开始删除n个字符,删除后在下标pos处插入s中下标a开始的b个字符

  1. string str("hello");
  2. string s("aaa");
  3. str.replace(2,2,s,2,1); 从下标2开始删除2个字符,删除后在下标2处插入s的下标2开始的1个字符
  4. cout<<str; //输出 heao

9.查找

(1)find(s)返回s字符第一次出现的下标

  1. string str("hello");
  2. cout<<str.find("ll"); //输出2

(2)find(s,pos)从字符串的 pos 位置开始查找s,返回s字符第一次出现的下标

  1. string str("hello");
  2. cout<<str.find('l',3); //输出3

(3)rfind() 与find()类似,不过是从后往前找

  1. string str("hello");
  2. cout<<str.rfind('l'); //输出3

(4)string.find_first_of() 在字符串中从指定位置开始向后(默认为索引 0 处)查找参数中任何一个字符首次出现的位置

  1. string str("hello world people");
  2. cout<<str.find_first_of("woooll"); //输出2

(5)find_last_of() 方法在字符串中查找参数中任何一个字符最后一次出现的位置(即从后往前找第一个)

  1. string str("hello world people");
  2. cout<<str.find_last_of("woooll"); //输出16

(6)string.find_first_not_of() 在字符串中查找第一个不包含在参数中的字符

  1. string str("hello world people");
  2. cout<<str.find_first_not_of("hwoooll"); //输出1

(7)find_last_not_of() 在字符串中查找最后一个不包含在参数中的字符

  1. string str("hello world people");
  2. cout<<str.find_last_not_of("hwoooll"); //输出17

10.其它操作

(1)empty()判空 ,若字符串为空,则返回真,否则返回假

  1. string str("hello world people");
  2. cout<<str.empty(); //输出0

(2)swap 函数交换两个字符串

  1. string s1("hello");
  2. string s2("world");
  3. s1.swap(s2);
  4. cout<<s1<<endl; //输出world
  5. cout<<s2<<endl; //输出hello

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/789028
推荐阅读
相关标签
  

闽ICP备14008679号