【c++】string类常见接口函数

2024-04-13 1091阅读

温馨提示:这篇文章已超过387天没有更新,请注意相关的内容是否还可用!

【c++】string类常见接口函数

🔥个人主页:Quitecoder

🔥专栏:c++笔记仓

【c++】string类常见接口函数

朋友们大家好啊,本节我们来到STL内容的第一部分:string类接口函数的介绍

目录

  • 1.string类的认识
  • 2.常见接口讲解
    • 2.1 string类对象的常见构造
    • 2.2 对string对象的遍历和修改
    • 2.3 string类对象的容量操作
    • 2.4 string类对象的修改操作
      • 注意事项:

        1.string类的认识

        给大家分享一个c++文档库:

        https://legacy.cplusplus.com/

        【c++】string类常见接口函数

        字符串类是代表字符序列的对象
        标准字符串类为这类对象提供了支持,其接口类似于标准字节容器的接口,但增加了专门用于操作单字节字符字符串的特性

        通过下面这串代码:

        typedef basic_string string;
        

        对应文档内容:

        字符串类是basic_string类模板的一个实例化,它使用char(即字节)作为其字符类型,并使用默认的char_traits和分配器类型

        请注意,这个类独立于使用的编码处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如length或size),以及其迭代器,仍将以字节(而非实际编码的字符)的方式操作

        简单总结:

        1. string是表示字符串的字符串类
        2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作
        3. string在底层实际是:basic_string模板类的别名,typedef basic_string string;
        4. 不能操作多字节或者变长字符的序列

        在使用string类时,必须包含#include头文件以及using namespace std;

        2.常见接口讲解

        2.1 string类对象的常见构造

        构造函数

        【c++】string类常见接口函数

        【c++】string类常见接口函数

        🔥string()

        这个函数的功能是构建一个空字符串,也是默认构造

        🔥string(const char* s)

        用C-string来构造string类对象

        用法如下:

        string s1("hello world");
        

        🔥string (const string&s)

        拷贝构造函数,用法:

        string s1("hello world");
        string s2(s1);
        

        🔥string (const string& str, size_t pos, size_t len= npos);

        我们来看文档对这一部分的讲解:

        【c++】string类常见接口函数

        拷贝从pos位置开始,向后len长度,如果超过剩余长度,则遍历到字符串的末尾

        注意,这里有个npos的缺省值,如果我的len给的nops,也会遍历到字符串末尾,简单了解一下npos

        【c++】string类常见接口函数

        npos是一个无符号常量整数-1,无符号整数-1即为整形的最大值232-1

        用法:

        string s1("hello world");
        string s2(s1);
        string s3(s1, 5, 3);
        string s4(s1, 5, 10);
        string s5(s1, 5);
        cout 
        	cout 
        	s[i]++;
        }
        cout 
        	cout 
        		cout 
        	cout 
        	cout 
        	string s;
        	size_t sz = s.capacity();
        	cout 
        		s.push_back('a');
        		if (sz != s.capacity())
        		{
        			sz = s.capacity();
        			cout 
        		cout 
            // 找到了子字符串 "World"
        }
        
            // 找到了第二个 "World"
        }
        
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]