千峰 c++_stl string容器

2023-11-29 00:30
文章标签 c++ string 容器 stl 千峰

本文主要是介绍千峰 c++_stl string容器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.1String容器的基本概念,常规操作

  1. string库提供了copy,find,insert,replace等方法 string是一个类 这个容器有一个指针,指针维护整个数组

  2. #string的构造函数
    string str( string类的其他对象 );
    string str( “字符串” );
    string str( ‘字符’ ); string str;

  3. #string容器的基本操作(赋值符号(=) 和 赋值方法assign())

  4. 如: str = str1;
    str = “字符串”;
    str = ‘字符’;
    注意:赋值的意义与后面的拼接区分开来 )string类中的赋值方 法: assign( string &s);

    				assign( char *s)assign( char *s,int n)//把字符串s从第n位开始 赋值。assign( int n,char c) //将 n个字符c赋值进去assign( string &s,int start,int n) 将s中的字符从第satrt位开始n个字符赋值进去
    

相关案例代码截图
案例代码截图

1.2 string容器的存取字符串操作

  1. 重载操作符[] 如:string str = “HelloWorld”;
    其中可以通过重载运算符[]来访问,str[0] 来访问第一个元素 ‘H’
    也可以通过方法at(int n)
    str.at(0) 等价于 str[0]

在这里插入图片描述

1.3string容器的拼接操作

  1. 重载操作符 “+=”: 可以拼接string& s,char* s,char s

  2. 拼接方法: append()
    针对于(char * s);
    (char *s,int n)把字符串的前n个字符拼接到字符串 结尾;
    (string& s);
    (string& s,int pos,int n)将字符串s从pos开始的n个字符拼接到字符串尾;

    	 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929204458973.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1Nzg4MDQz,size_16,color_FFFFFF,t_70#pic_center)
    

1.4string容器的查找(find)和替换(replace)

  1. 查找方法:

    find:查找字符串出现的第一次
    (string& str,int pos = 0)查找str第一次的出现
    位置,从pos开始查找
    (char * s,int pos = 0)类似
    (char* s,int pos ,int n)查找s第一次出现的
    位置,从pos开始的第n个字符范围内
    (char c,int pos = 0) 如果不写pos 默认为0

    rfind:查找字符串出现的最后 一次
    (string& str,int pos = npos)查找str最后一次的出现
    位置,从pos开始查找
    (char * s,int pos = npos)类似
    (char* s,int pos ,int n )查找s最后一次出现的位置,从pos开始的第n个字符范围内
    (char c,int pos = npos) 如果不写pos 默认为npos

    	放回的值是到字符串首字母的距离
    
  2. 替换方法:

replace:替换
(int pos,int n,string& str)将字符串str与目标字符串的pos位置开始距离n个字符的空间里
(int pos ,int n,char* s)将字符串str与目标字符串的pos位置开始距离n个字符的空间里

 例如: string str = “world”;str.replace(0,2,"Hello");输出结果“Hellorlld”

在这里插入图片描述

1.5string容器的比较

这里是引用

  1. compare方法:

    	str.compare(string& s) str.compare(char* s)str大就返回1str小就返回-1相等 就返回0![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929210342875.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1Nzg4MDQz,size_16,color_FFFFFF,t_70#pic_center)
    

1.6string容器中获取自身的子串

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

在这里插入图片描述

1.7string容器中的插入和删除

  1. insert方法:
    insert(int pos,const char *s);
    insert(int pos,const string& str);从pos位置开始插入str字符串
    insert(int pos,int n ,char c) 在pos的位置插入n个字符c

  2. erase方法:

    			erase(int pos,int n = pos) 从pos 开始后的n个字符
    

在这里插入图片描述

1.8string容器中string的对象和char*相互转换

  1. 格式:string str = “Hello”;
    char* s = NULL;
    s = const_cast<char *>(str.c_str());
    cout << s <<endl;

       ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929211445690.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1Nzg4MDQz,size_16,color_FFFFFF,t_70#pic_center)
    

这篇关于千峰 c++_stl string容器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/430785

相关文章

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(