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

yizhihongxing

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类的几个常用方法,包括构建、长度及大小、索引和下标访问、截取、比较、查找和替换等。使用上述方法可以使字符串的操作变得更加方便和快捷。

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

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

相关文章

  • C语言栈的表示与实现实例详解

    C语言栈的表示与实现实例详解 栈的概念 栈是一种特殊的线性表,它具备后进先出(Last-In-First-Out,LIFO)的特性。栈实现的基本操作有入栈(push)和出栈(pop)两种。 栈的表示 栈可以通过数组或链表两种数据结构进行表示。 数组表示 数组表示的栈是一段连续的内存空间,可以使用数组下标代表每个栈元素的位置。数组的顶部指针用于标识当前栈顶元素…

    C 2023年5月23日
    00
  • SpringBoot @Retryable注解方式

    当我们使用Spring Boot开发应用程序的时候,很有可能会碰到一些需要重试的异常错误,例如数据库连接超时等问题。这时候,我们可以使用Spring Boot提供的@Retryable注解来处理这些异常,并在重试后继续执行程序。 下面是使用@Retryable注解的具体步骤: 第一步:添加依赖 在Spring Boot应用程序中使用@Retryable注解,…

    C 2023年5月23日
    00
  • C++对象内存分布详解(包括字节对齐和虚函数表)

    C++中的对象在内存中的分布,对于理解C++的语法和特性非常重要。在本文中将讲解C++对象内存分布的相关知识,包括内存分配、字节对齐、虚函数表等内容。 内存分配 C++中的对象是在内存中动态分配的,通过运算符new来进行内存动态分配。例如,以下是一个动态分配对象的示例代码: class MyClass { public: int i; double d; v…

    C 2023年5月22日
    00
  • Windows 环境下使用 Qt 连接 MySQL

    下面我将为您详细讲解“Windows 环境下使用 Qt 连接 MySQL”的完整攻略。 前置条件 在进行本教程之前,您需要确保您已经做好了以下几项准备: 您已经在 Windows 系统中安装了 Qt; 您已经在 Windows 系统中安装了 MySQL 数据库,并且已经创建了一个数据库。 如果您还没有完成上述准备,请先完成准备工作。 步骤一:安装 MySQL…

    C 2023年5月23日
    00
  • js解析json读取List中的实体对象示例

    下面是“js解析json读取List中的实体对象示例”的完整攻略。 1. 什么是 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,常用于 Web 应用程序之间的数据传输。 JSON 数据是由键值对组成,键名必须是双引号包裹的字符串,键值可以是数字、字符串、布尔值、数组、对象等一些基本的数据类型。示例代码…

    C 2023年5月23日
    00
  • C语言利用cJSON解析JSON格式全过程

    当我们需要获取某个Web API的数据时,一般情况下会返回JSON格式的数据。如何使用C语言来解析这些JSON数据呢?这时候,就可以使用cJSON开源库。 cJSON是一款轻量级、快速的C语言JSON解析器。它使用简单,只需要包含一个头文件”cJSON.h”,并将相关代码文件加入到项目中即可。下面将详细讲解cJSON解析JSON格式的全过程。 第一步:安装c…

    C 2023年5月22日
    00
  • C++成员函数如何当作回调函数同时传递this指针

    要将一个C++对象的成员函数作为回调函数并传递对象的this指针,需要使用函数对象和函数指针的技巧。下面分步骤介绍: 1. 定义函数对象 首先定义一个函数对象类,这个类中定义了一个成员函数指针和一个指向对象的指针。这个类将被用于封装成员函数以便传递给其他函数。 class Foo { public: typedef void (Foo::*Callback)…

    C 2023年5月23日
    00
  • 在c和c++中实现函数回调

    在C和C++中实现函数回调,需要用到函数指针;函数指针是将函数的入口地址存放在指针变量中,可以通过指针来间接调用函数。 以下是实现函数回调的步骤: 声明一个函数指针类型,以便后续能实现复用: c++typedef void(*CallbackFunction)(int); 上面的代码定义了一个函数指针类型CallbackFunction,该函数指针可以指向一…

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