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日

相关文章

  • JS仿Base.js实现的继承示例

    JS仿Base.js实现的继承示例是一种通过原型链实现的继承方式,可以为程序员提供更加灵活的代码组织方式和更加高效的代码复用功能。以下是详细的攻略过程: 1. 前置知识 在学习JS仿Base.js实现的继承示例前,需要掌握以下前置知识:- JS的原型和原型链- JS中函数的this指向- JS中的作用域和闭包- JS的面向对象编程思想 2. 示例说明 接下来…

    C 2023年5月22日
    00
  • iOS底层探索之自动释放池原理解析

    iOS底层探索之自动释放池原理解析 什么是自动释放池 自动释放池是一种机制,用于在Objective-C中管理内存。具体来说,自动释放池是一个用于暂时存储不需要的Objective-C对象的容器,当自动释放池被销毁时,它所包含的所有对象都被发送一条autorelease消息。autorelease消息会将这些对象的引用计数减一,如果引用计数变为0,对象会立即…

    C 2023年5月23日
    00
  • Android application捕获崩溃异常怎么办

    为了使我们的Android应用在使用时更加稳定,我们需要捕获应用程序的错误和异常。 当应用程序在运行时崩溃并退出应用程序的情况下,我们可以通过捕获这些错误和异常来了解问题出现的原因并追踪和解决它们。 在Android应用程序中捕获异常有很多不同的方法。 以下是一些可能的方法和完整攻略: 使用try-catch块捕获异常 try-catch块是一种用于捕获异常…

    C 2023年5月23日
    00
  • C++ cmake实现日志类的示例代码

    C++ cmake实现日志类的示例代码攻略 前置要求 安装cmake工具:在官网 https://cmake.org/download/ 下载对应系统的版本进行安装 C++编译器:这里以g++为例 IDE:这里以Visual Studio Code为例 步骤一:创建工程 利用cmake工具创建一个C++工程。 在项目根目录创建文件CMakeLists.txt…

    C 2023年5月23日
    00
  • C语言课程设计之抽奖系统

    C语言课程设计之抽奖系统 系统简介 本系统是一个基于C语言的抽奖系统,主要用于生成指定数量的随机码,并且可以根据指定条件进行抽奖。 系统需求 在终端中实现以下功能: 生成指定数量的随机码 按照指定条件抽取随机码 系统设计 随机码生成 由于随机码的生成是本系统的重点之一,因此我们需要用到C语言中的伪随机数生成函数rand(),并且在使用rand()函数之前,需…

    C 2023年5月23日
    00
  • 深入解析C++编程中__alignof 与__uuidof运算符的使用

    深入解析C++编程中__alignof 与__uuidof运算符的使用 __alignof 运算符 __alignof 运算符用来获取一个类型所需的对齐宽度,也就是该类型所占空间的整数倍。其语法如下: alignof(type) 其中,type 表示类型,可以是内置类型、用户自定义类型、指针类型、引用类型等。 示例1: #include <iostre…

    C 2023年5月23日
    00
  • C语言 while循环

    当我们需要重复执行某个代码块直到满足条件时,可以使用循环语句。C语言提供了三种循环语句:while、for和do-while。其中,while语句用于不确定循环次数的情况。下面是while循环的使用攻略。 while循环基本语法 while循环的基本语法如下: while (condition) { statement; } 其中,condition为循环条…

    C 2023年5月9日
    00
  • C# 中如何使用Thread

    在C#中,我们可以使用Thread类来实现多线程编程。下面是使用Thread类来创建线程的详细攻略: 创建线程 要使用Thread实现线程,首先需要创建一个Thread对象,包含线程要执行的方法。 Thread thread = new Thread(new ThreadStart(ThreadMethod)); 此处ThreadMethod代表线程要执行的…

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