C++中string类

简介: 🐰string类🏡string类的简介🏡C++11字符串的初始化🏡string类型中的赋值、拼接和附加🏡string的其他操作🏡string类I/O

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰string类

🏡string类的简介

🏡C++11字符串的初始化

🏡string类型中的赋值、拼接和附加

🏡string的其他操作

🏡string类I/O


🐰string类

🏡string类的简介

使用string类,必须在程序中包含头文件string。string类位于命名空间std中,因此必须提供一条using编译指令,或使用string::string来引用它。string类定义隐藏了字符串数组的性质,就可以处理普通变量那样处理字符串。

string对象和字符数组之间的主要区别是,可以将string对象声明为简单变量,而不是数组:

1. string str1;
2. string str1="hello C++!";

类设计可以自动处理string类型的大小。例如,str1的声明创建一个长度为0的string对象,但程序将输入读取到str1时,将自动调整str1的长度:

1. string str1;//str1的长度为0
2. cin>>str1;//长度发生了变化

这和使用数组相比,使用string对象更方便,也更安全。其实可以将字符数组看作一组存储一个字符串的char存储单元,而string类变量是一个表示字符串的实体

🏡C++11字符串的初始化

C++11也允许将列表初始化用于C风格的字符串和string对象

1. char data1[]={"hello C!"};
2. char data2[]{"hello C!"};
3. string Data1={"hello C++!"};
4. strinf Data2{"hello C++!"};

🏡string类型中的赋值、拼接和附加

使用string类时,某些操作比使用数组时更加简单。例如,不能将一个数组赋给另一个数组,但可以将一个string对象赋值另一个string对象

1. char arr[20];
2. char brr[20]={"Hello C!"};
3. arr=brr//不可以这样做,这样编译是错的
4. //数组的赋值应该是
5. strcpy(arr,brr);//利用拷贝函数实现数组的赋值
6. string str1;
7. string str2={"Hello C++!"};
8. str1=str2;//这样是完全正确的,C++里是允许的

string类简化了字符串合并的操作。可以使用运算符+将两个string对象合并起来,还可以使用运算符+=将字符串附加到string对象的末尾。

1. string str3;
2. str3=str1+str2;
3. str1+=str2;

例如:

1. #include<iostream>
2. #include<string>
3. using namespace std;
4. int main()
5. {
6.     string str1="Hello ";
7.     string str2="C++!";
8.     string str3;
9.     str3=str1+str2;
10.     cout<<"str3=str1+str1:"<<str3<<endl;
11.     str1+=str2;
12.     cout<<"str1+=str2:"<<str1<<endl;
13.     return 0;
14. }
15. 结果:
16. str3=str1+str1:Hello C++!
17. str1+=str2:Hello C++!

🏡string的其他操作

两种确定字符串中字符数的方法:

1. int lenth1=str1.lenth();
2. int lenth2=str2.size();

🏡string类I/O

可以使用cin和运算符>>来输入存储到string对象中,使用cout和运算符<<来显示string对象。但每次读取一行而不是一个单词。

用户输入之前,str1中的字符串的长度为0,这是因为未被初始化的string对象的长度自动被设置为0

下面将一行输入读取到string对象中

getline(cin,str);

cin>>str1//处理string对象的代码使用string类的一个友元函数。

🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸



相关文章
|
29天前
|
API 索引
String类下常用API
String类下常用API
32 1
|
29天前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
42 1
|
2天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
42 30
|
6天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
11 1
Java——String类详解
|
2天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
2天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
16天前
|
存储 编译器 C++
C ++初阶:类和对象(中)
C ++初阶:类和对象(中)
|
16天前
|
C++
C++(十六)类之间转化
在C++中,类之间的转换可以通过转换构造函数和操作符函数实现。转换构造函数是一种单参数构造函数,用于将其他类型转换为本类类型。为了防止不必要的隐式转换,可以使用`explicit`关键字来禁止这种自动转换。此外,还可以通过定义`operator`函数来进行类型转换,该函数无参数且无返回值。下面展示了如何使用这两种方式实现自定义类型的相互转换,并通过示例代码说明了`explicit`关键字的作用。
|
16天前
|
存储 设计模式 编译器
C++(十三) 类的扩展
本文详细介绍了C++中类的各种扩展特性,包括类成员存储、`sizeof`操作符的应用、类成员函数的存储方式及其背后的`this`指针机制。此外,还探讨了`const`修饰符在成员变量和函数中的作用,以及如何通过`static`关键字实现类中的资源共享。文章还介绍了单例模式的设计思路,并讨论了指向类成员(数据成员和函数成员)的指针的使用方法。最后,还讲解了指向静态成员的指针的相关概念和应用示例。通过这些内容,帮助读者更好地理解和掌握C++面向对象编程的核心概念和技术细节。
|
23天前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
15 1