c++中的string常用函数用法总结

c++中的string常用函数用法总结

什么是string

string是C++ STL库中的一种字符串类型,提供了丰富的字符串操作函数,可进行字符串拼接、查找、替换、截取、大小写转换等操作。它是基于动态分配内存实现的,这意味着它能够自动管理内存,用户不必操心内存分配和释放的问题。

常用函数总结

1、构建string对象

  • string():默认构造函数,构造一个空的字符串。
  • string(const char* s):构造函数,使用C语言中的字符串初始化string对象。
  • string(size_t n, char c):构造函数,通过重复填充字符c来构造一个长度为n的string对象。
  • string(const string& str):构造函数,通过拷贝构造函数来构造一个string对象。

示例:

string s1 = ""; // 空字符串
string s2 = "hello, world!"; // 通过C语言字符串构造一个string对象
string s3(10, 'a'); // 重复填充字符'a'来构造长度为10的字符串
string s4 = s2; // 拷贝构造函数构造一份s2的拷贝

2、字符串的长度和大小

  • size():返回字符串中字符的数量。
  • length():与size()函数功能相同,返回字符串中字符的数量。
  • empty():返回true/false,指示字符串是否为空。

示例:

string s1 = "";
string s2 = "hello, world!";
cout << s1.size() << endl; // 0
cout << s2.length() << endl; // 13
cout << s1.empty() << endl; // 1,空字符串返回true
cout << s2.empty() << endl; // 0,非空字符串返回false

3、字符串的索引和下标访问

  • [i]:返回字符串中第i个字符。
  • at(i):返回字符串中第i个字符,做了边界检查,如果访问越界,会抛出out_of_range异常。
  • front():返回字符串的第一个字符。
  • back():返回字符串的最后一个字符。

示例:

string s = "hello, world!";
cout << s[0] << endl; // 'h'
cout << s.at(1) << endl; // 'e'
cout << s.front() << endl; // 'h'
cout << s.back() << endl; // '!'

4、字符串的截取

  • substr(pos, len):返回从pos开始的长度为len个字符的子字符串。

示例:

string s = "hello, world!";
string s_substr = s.substr(7, 6); // 取子字符串"world!"
cout << s_substr << endl; // "world!"

5、字符串的比较

  • compare(s):比较当前字符串与字符串s的大小,返回-1、0或1。
  • <, >, <=, >=, ==, !=:运算符重载,用于比较两个字符串的大小关系,返回true/false。

示例:

string s1 = "abc";
string s2 = "abd";
cout << s1.compare(s2) << endl; // -1,s1小于s2
cout << (s1 < s2) << endl; // 1,s1小于s2,返回true

6、字符串的查找和替换

  • find(s, pos):在字符串从指定的位置开始查找子字符串s的出现位置,返回该位置的下标,如果找不到,返回-1。
  • rfind(s, pos):从指定位置向后查找子字符串s的出现位置,返回该位置的下标,如果找不到,返回-1。
  • replace(pos, len, s):将从pos位置开始的len个字符替换成字符串s。

示例:

string s = "hello, world!";
int pos = s.find("llo"); // pos = 2
int rpos = s.rfind("l"); // rpos = 9
s.replace(2, 3, "LLO"); // 替换"llo"为"LLO"
cout << s << endl; // "heLLO, world!"

总结

在C++中,使用string类可以方便地进行字符串操作。本文总结了string类的几个常用方法,包括构建、长度及大小、索引和下标访问、截取、比较、查找和替换等。使用上述方法可以使字符串的操作变得更加方便和快捷。

阅读剩余 56%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的string常用函数用法总结 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Mysql锁内部实现机制之C源码解析

    下面我将分享一份“Mysql锁内部实现机制之C源码解析”的完整攻略: Mysql锁内部实现机制之C源码解析 什么是Mysql锁? Mysql锁是用于控制多个会话之间对同一数据的访问的机制,包括共享锁、排他锁等多种类型。客户端在访问数据库时需要对相应的资源加锁。锁的主要作用是控制并发,防止多个客户端同时修改同一数据。 在Mysql的内部实现中,锁机制分为两大类…

    C 2023年5月22日
    00
  • 激战2国服客户端官方文档具体内容

    激战2国服客户端官方文档 激战2官方文档是激战2国服的官方文档,提供了有关游戏的基础知识、游戏机制、角色职业、地图副本、PVP以及心灵法则等方面的完整介绍。本文将详细讲解激战2国服客户端官方文档的具体内容,以帮助广大玩家更好地了解游戏。 一、游戏机制 激战2国服客户端官方文档的第一部分介绍了游戏的基础知识和游戏机制。其中包括游戏的角色属性、技能系统、战斗机制…

    C 2023年5月22日
    00
  • SpringBoot定制三种错误页面及错误数据方法示例

    下面是对SpringBoot定制三种错误页面及错误数据方法的详细讲解和示例说明: 1. SpringBoot错误处理 在SpringBoot应用中,我们可以自定义错误页面,以显示更友好的错误提示信息,同时也可以记录异常日志。 SpringBoot提供了一组异常处理相关的注解,包括 @ControllerAdvice 和 @ExceptionHandler 等…

    C 2023年5月22日
    00
  • Go json反序列化“null“的问题解决

    当使用Go语言进行json反序列化时,可能会遇到null值的问题。在这种情况下,Go的json解析器会将null值解析为零值,而不是空值。 要解决这个问题,有两种方法: 方法一:使用指针类型 可以将解析结果存储在指针类型的变量中,如下所示: type MyStruct struct { MyField *string `json:"myField&…

    C 2023年5月23日
    00
  • C++实现十进制数转为其它进制数

    关于C++实现十进制数转为其他进制数的攻略,我将分为以下几个步骤进行介绍: 确定需要转换的十进制数以及目标进制数 使用循环和取模运算将十进制数转为目标进制数的各位数字 反转转换后的数字(可选) 输出转换后的数字(可选) 接下来我将详细讲解每一步的实现过程,并提供两个示例说明。 步骤1:确定需要转换的十进制数以及目标进制数 在进行进制转换之前,需要明确需要转换…

    C 2023年5月23日
    00
  • C++ 通过pqxxlib库链接 PostgreSql数据库的详细过程

    C++ 是广泛使用的编程语言之一,与后端的数据库管理息息相关。其中,PostgreSQL 是一个功能齐全的开源对象-关系数据库管理系统,被广泛应用于 Web 应用程序的数据存储。在 C++ 中,通过使用 pqxxlib 库的链接,可以很方便地访问并操作 PostgreSQL 数据库。 下面是 C++ 通过 pqxxlib 库链接 PostgreSQL 数据库…

    C 2023年5月22日
    00
  • javascript表单域与json数据间的交互

    下面是关于“javascript表单域与json数据间的交互”的完整攻略。 1. 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级数据交换格式,原本用来代替XML,现在已成为一种独立的数据格式。它以键/值对的形式来表示数据,常用于传输数据,在客户端和服务器之间进行数据交互。 JSON 格式的数据可以是文本、数字、…

    C 2023年5月23日
    00
  • win2008 R2服务器下修改MySQL 5.5数据库data目录的方法

    修改MySQL 5.5数据库data目录的方法需要按照以下步骤进行。 步骤1:备份原有数据 在修改数据目录之前,首先需要备份原有数据。可以使用mysqldump命令,将原有数据导出到其他文件或目录中。 示例: mysqldump -u root -p dbname > dbname.sql 以上命令中,-u 参数指定用户名,-p 参数后面跟着密码,db…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部