【C++】string类(常用接口)

简介: 【C++】string类(常用接口)

修改操作

push_back



push_back只能插入一个字符,如果想要插入字符串,得用append。


append



这里简单介绍几个,常用的是第一个,需要使用时,可去cplusplus网站查阅。


operator+=




实际中,我们更喜欢用+=,使用起来更方便。


assign



assign的作用就是从前面开始覆盖。


insert




insert就是插入,不过插入时会进行数据的挪动,尽量少使用,否则效率会变低。


erase




pos有个缺省值,即默认从0开始,npos就是整形的最大值,如果len大于剩下的长度,就是全部删除。如果不给任何参数,就是全部删除。 上面是从下标为2开始,删除3个字符。不过尽量少用,因为也会降低效率。


replace




上面是把从第5个位置开始的,前一个和前三个位置用来替换字符串。位置不够时会挪动,位置够的地方就会替换。


如果想把空格部分都改成%20,可以和find结合使用:




npos是整形的最大值,正常来说字符串是没有这个下标位置的,通常用来表示没有找到匹配项。上面的erase、replace、insert都尽可能少用,因为效率不高。



还可以用范围for的方法进行替换。


c_str





在C++中,string对象后面会自动加上'\0'来兼容C语言,c_str的作用是返回C格式的字符串。如上图,filename是string对象,fopen的操作数是字符类型的,所以就要用c_str进行转换。


find




substr的作用是在str中从pos位置开始,截取n个字符,然后将其返回。因为cpp刚好是最后的字符串,又有缺省值,可以直接不写。 或者size-pos位置,就是要截取的个数。




如果想找到最后一个后缀,可以用rfind。 rfind的作用是从字符串pos位置开始往前找字符,返回该字符在字符串中的位置。



上面是find和substr的使用场景。这套方法对其他网址的分割也是通用的。


string类非成员函数

relational operators




relational operators的作用是比较大小。


operator+




operator+的使用很简单,重载这么多个是因为可以让char* 和string的可以混着用。


getline


字符串最后一个单词的长度_牛客题霸_牛客网


上方是牛客的一道题,通过这道题介绍getline。




cin和scanf一样,遇到空格或者换行都会进行区分,否则同一行上的多个字符串就无法区分了。此时T在缓冲区里面。



getline的作用就是获取一行字符串。


to_string、stod



to_string是把数值转换成字符串,stod是把字符串转换成双精度浮点数。上面还有各种字符串和数值相互转换的函数。


目录
相关文章
|
14天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
25 2
|
20天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
54 5
|
26天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
56 4
|
27天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
65 4
|
2月前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
38 2
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
23 1
|
3月前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
40 0
java基础(13)String类
|
2月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
62 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
3月前
|
安全 Java
String类-知识回顾①
这篇文章回顾了Java中String类的相关知识点,包括`==`操作符和`equals()`方法的区别、String类对象的不可变性及其好处、String常量池的概念,以及String对象的加法操作。文章通过代码示例详细解释了这些概念,并探讨了使用String常量池时的一些行为。
String类-知识回顾①
|
2月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
57 4