【C/C++】基础知识之string字符串

简介: 【C/C++】基础知识之string字符串

在C/C++中,string是一种常用的字符串类型,其实现是一个类。使用string可以方便地进行字符串的操作。

下面是string的一些基本操作:

创建string对象:可以通过以下方式来创建string对象:

string str1; string str2 = "Hello World"; string str3("I am a string");

获取string对象的长度:可以使用size()或者length()方法来获取string对象中字符的数量。

string str = "Test String"; int len = str.size(); // 等同于 str.length();
cout << "String Length: " << len << endl;

连接字符串:可以使用+号来将两个string对象连接起来,或者使用append()方法来追加一个string对象到另一个对象的末尾。

string str1 = "Hello"; string str2 = "World"; string str3 = str1 + " " + str2; cout << "str3: " << str3 << endl;

string str = "Hello"; str.append(" World"); cout << "str: " << str << endl;

查找字符串:可以使用find()方法来查找string对象中是否包含一个子串,如果找到了则返回子串的首字符所在的索引;如果没有找到则返回string::npos。

string str = "Today is a good day"; int pos = str.find("good"); if (pos != string::npos) { cout << "'good' is at position " << pos << endl; } else { cout << "'good' is not found" << endl; }

截取字符串:可以使用substr()方法来截取一个string对象的子串,参数为起始索引和截取长度。

string str = "Today is a good day"; string sub = str.substr(9, 4); // 从第9个字符开始截取4个字符 cout << "sub: " << sub << endl;

删除字符串:可以使用erase()方法来删除string对象中的一个子串,参数为起始索引和删除长度。

string str = "Today is a good day"; str.erase(9, 4); // 删除从第9个字符开始的4个字符 cout << "str: " << str << endl;

替换字符串:可以使用replace()方法来替换string对象中的一个子串,参数为起始索引、替换长度和替换字符串。

string str = "Today is a good day"; str.replace(9, 4, "a bad"); cout << "str: " << str << endl;

以上是string的一些基本操作,使用string可以让字符串的操作更加方便。

相关文章
|
15天前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
37 5
|
15天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
25 2
|
25天前
|
索引 Python
String(字符串)
String(字符串)。
27 3
|
2月前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
46 4
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
23 1
|
2月前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
38 5
|
2月前
|
C++ 容器
|
2月前
|
C语言 C++
深度剖析C++string(中)
深度剖析C++string(中)
50 0
|
2月前
|
存储 编译器 程序员
深度剖析C++string(上篇)(2)
深度剖析C++string(上篇)(2)
38 0
|
2月前
|
存储 Linux C语言
深度剖析C++string(上篇)(1)
深度剖析C++string(上篇)(1)
33 0