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

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

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

相关文章

  • C++实现LeetCode(122.买股票的最佳时间之二)

    下面是详细讲解“C++实现LeetCode(122.买股票的最佳时间之二)”的完整攻略。 什么是买股票的最佳时间问题 买股票的最佳时间问题是一个经典的动态规划问题,其求解目标是:给定一组股票价格,求出在给定的时间范围内,我们应该在哪些时间买入和卖出股票,才能获取最大收益。 LeetCode的买股票的最佳时间问题 针对该问题,LeetCode中的 https:…

    C 2023年5月22日
    00
  • VC随机函数srand和rand用法

    VC随机函数srand和rand用法是C/C++编程中非常常用的一种随机数生成方法,本攻略将详细介绍它们的用法。 srand函数 srand函数用于生成随机数种子,其原型如下: void srand(unsigned int seed); 其中,seed参数通常是时间或者程序启动时的系统时间等随机值,用于初始化随机数种子。如果不使用srand()的话,则每次…

    C 2023年5月22日
    00
  • vscode 配置 C/C++编译环境(完整教程)

    下面是“vscode配置C/C++编译环境(完整教程)”的完整攻略: 一、安装vscode和MinGW-w64 1.安装vscode vscode是一款非常流行的编辑器,使用非常方便,可以在官网 https://code.visualstudio.com/ 下载最新版的安装包进行安装。安装完成后,打开vscode,在左侧菜单栏中搜索并安装“C/C++”插件。…

    C 2023年5月23日
    00
  • win10环境下C++ vs2015编译opencv249的教程

    以下是“win10环境下C++ vs2015编译opencv249的教程”的完整攻略。 准备工作 下载安装 VS2015 首先,需要下载并安装 Visual Studio 2015,可以通过微软官网下载,或者通过电脑管家等软件下载。 下载安装 CMake 其次,需要下载并安装 CMake。同样可以通过官网下载。 下载安装 Opencv 2.4.9 最后,需要…

    C 2023年5月23日
    00
  • 详解C/C++如何获取路径下所有文件及其子目录的文件名

    获取一个文件夹下的所有文件及其子目录的文件名可以通过递归遍历文件夹来完成。以下是几个示例代码,演示如何实现这个功能。 方法一:使用C++17中的std::filesystem 基于C++17标准,可以使用std::filesystem库来遍历目录。下面是示例代码: #include <iostream> #include <filesyst…

    C 2023年5月23日
    00
  • C语言函数调用的三种实现方法实例

    C语言函数调用的三种实现方法实例 在C语言中,函数调用可以通过三种不同的方式进行实现,分别为值传递、指针传递和引用传递。下面我们分别对这三种方法进行详细的讲解。 值传递 值传递是指将实参的值复制到形参中,函数中对形参的修改不会影响到实参。下面是一个示例代码: #include <stdio.h> int add(int a, int b) { i…

    C 2023年5月23日
    00
  • 谷歌Pixel C怎么样?谷歌Pixel C对比微软Surface 3,各有不同

    谷歌Pixel C怎么样? 谷歌Pixel C是一款由Google公司推出的平板电脑,采用了10.2英寸的屏幕,拥有高达2560×1800像素的分辨率,内置4GB RAM和32GB/64GB的闪存。平板电脑采用了NVIDIA Tegra X1处理器,运行Android 7.0操作系统,支持Google Play商店和Google应用。Pixel C拥有一款精…

    C 2023年5月23日
    00
  • java中Class.forName的作用浅谈

    《Java中Class.forName的作用浅谈》 简介 在Java中,如果要使用一个类,通常需要先加载该类。类的加载可以分为三个阶段:加载、链接和初始化。其中,加载阶段包括找到对应的字节码文件,并把该字节码文件读入到内存中;链接阶段包括验证、准备和解析的过程;初始化阶段是类的静态变量和静态代码块首次被执行的阶段。 在某些情况下,我们需要在运行时动态地加载某…

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