C++初阶--String类的使用

简介: C++初阶--String类的使用

string类

C语言中,我们总是用char* 的类型来创建一个变量,存储一个字符串;当我们想对它进行修改或者读写时,需要自我创建空间和使用string.h的库函数来进行操作它

而在C++中,C++专门提供了一个头文件 string 用一个类对字符串的一系列操作进行了封装;对于底层空间不需要用户自己管理了;

当然该类是basic_string类的一个实例,使用了char来实例化basic_string模板类;

这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。

接下来就详细介绍string类的使用。

创建一个string类的对象

对于string类的使用,我们首先就必须引用它的头文件

#include < string >

string s1; //默认的创建一个String对象
  string s2("One more thing"); //用C-Stirng来创建Strng类的对象s2
  string s3 = s2; //构造拷贝函数
  string s4(s2); //构造拷贝函数
  cout << s1 << endl;
  cout << s2 << endl;
  cout << s3 << endl;
  cout << s4 << endl;

对创建的类进行查看

查看对指定字符串的指定子字符串的使用

string s5(s2, 5, 6);//复制指定字符串的子串
  cout << s5 << endl;
  string s6(s2, 1); //从第1个元素进行复制构造
  cout << s6 << endl;
  string s7(s2, 5, 100);
  cout << s7 << endl;

npos

string s8("One More", 5);//从首个元素复制到指定第5个元素之前
  cout << s8 << endl;
  string s9(5, 'c');//复制5个c字符
  cout << s9 << endl;

赋值操作

赋值时该对象必须是已经存在的;

string s1;
  s1 = 'x';
  s1 = s2;
  s1 = "hello";

遍历和访问

size() 和 lenth()

操作数[]

可以直接访问对应字符串的元素

逆置字符串

iterator

iterator迭代器,是C++标准库中的一个概念。它是一种对象,用于遍历容器中的元素序列,以访问和处理容器中的元素。

对于string类来说,terator本质上就是就是一个字符串指针,指向字符串的某个位置,从而允许我们遍历容器中的所有元素,而不需要了解string本身的结构和实现细节。

而C++中,有一个reverse的函数模板

const问题

要注意const和会非const的区别

rbegin()和rend()

back()和front()

reserve

在Linux的g++中

g++中:

g++中

结论

risize()

插入

push_back()

append()

操作数+=

追加字符时与push_back()一样;追加字符串时,和append()效果一样。

insert

erase

删除指定字符串。

find()

rfind

c_str

find_first_of

find_last_of

operator+

getline

相关文章
|
5天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0
|
5天前
|
C++
c++的学习之路:7、类和对象(3)
c++的学习之路:7、类和对象(3)
19 0
|
3天前
|
设计模式 Java C++
【C++高阶(八)】单例模式&特殊类的设计
【C++高阶(八)】单例模式&特殊类的设计
|
3天前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
8天前
|
存储 安全 C语言
【C++】string类
【C++】string类
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
9天前
|
编译器 C++
标准库中的string类(上)——“C++”
标准库中的string类(上)——“C++”
|
16天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
1月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
1月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
23 0