```c
1. 运算符重载
+、+=       连接字符串
=         字符串赋值
>、>=、<、<=   字符串比较(例如a < b, aa < ab)
==、!=      比较字符串
<<、>>      输出、输入字符串
注意:使用重载的运算符 + 时,必须保证前两个操作数至少有一个为 string 类型。例如,下面的写法是不合法的:

#include <iostream>
#include <string>
int main()
{
string str = "cat";
cout << "apple" + "boy" + str; // illegal!
return 0;
}
字符串查找
find() 查找函数
str.find("ab");
//返回字符串 ab 在 str 的位置
str.find("ab", 2);
//在 str[2]~str[n-1] 范围内查找并返回字符串 ab 在 str 的位置
str.rfind("ab", 2);
//在 str[0]~str[2] 范围内查找并返回字符串 ab 在 str 的位置
find_first() 首次出现系列函数

str.find_first_of("apple");
//返回 apple 中任何一个字符首次在 str 中出现的位置
str.find_first_of("apple", 2);
//返回 apple 中任何一个字符首次在 str[2]~str[n-1] 范围中出现的位置
str.find_first_not_of("apple");
//返回除 apple 以外的任何一个字符在 str 中首次出现的位置
str.find_first_not_of("apple", 2);
//返回除 apple 以外的任何一个字符在 str[2]~str[n-1] 范围中首次出现的位置

find_last() 末次出现系列函数

str.find_last_of("apple");
//返回 apple 中任何一个字符最后一次在 str 中出现的位置
str.find_last_of("apple", 2);
//返回 apple 中任何一个字符最后一次在 str[0]~str[2] 范围中出现的位置
str.find_last_not_of("apple");
//返回除 apple 以外的任何一个字符在 str 中最后一次出现的位置
str.find_last_not_of("apple", 2);
//返回除 apple 以外的任何一个字符在 str[0]~str[2] 范围中最后一次出现的位置

注意:以上函数如果没找到的话均返回 string::npos。

字符串的子串
str.substr(3);
//返回 [3] 及以后的子串
str.substr(2, 4);
//返回 str[2]~str[2+(4-1)] 子串(即从[2]开始4个字符组成的字符串)
字符串替换
str.replace(2, 4, "sz");
//返回把 [2]~[2+(4-1)] 的内容替换为 "sz" 后的新字符串
str.replace(2, 4, "abcd", 3);
//返回把 [2]~[2+(4-1)] 的内容替换为 "abcd" 的前3个字符后的新字符串
字符串插入
str.insert(2, "sz");
//从 [2] 位置开始添加字符串 "sz",并返回形成的新字符串
str.insert(2, "abcd", 3);
//从 [2] 位置开始添加字符串 "abcd" 的前 3 个字符,并返回形成的新字符串
str.insert(2, "abcd", 1, 3);
//从 [2] 位置开始添加字符串 "abcd" 的前 [2]~[2+(3-1)] 个字符,并返回形成的新字符串
字符串追加
  除了用重载的 + 操作符,还可以使用函数来完成。

str.push_back('a');
//在 str 末尾添加字符'a'
str.append("abc");
//在 str 末尾添加字符串"abc"
字符串删除
str.erase(3);
//删除 [3] 及以后的字符,并返回新字符串
str.erase(3, 5);
//删除从 [3] 开始的 5 个字符,并返回新字符串
字符串交换
str1.swap(str2);
//把 str1 与 str2 交换

str.size();
//返回字符串长度
str.length();
//返回字符串长度
str.empty();
//检查 str 是否为空,为空返回 1,否则返回 0
str[n];
//存取 str 第 n + 1 个字符
str.at(n);
//存取 str 第 n + 1 个字符(如果溢出会抛出异常)
```

string函数部分解释的更多相关文章

  1. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  2. string函数分析

    string函数分析string函数包含在string.c文件中,经常被C文件使用.1. strcpy函数原型: char* strcpy(char* str1,char* str2);函数功能: 把 ...

  3. PHP String 函数

    [http://www.w3school.com.cn/php/php_ref_string.asp ] PHP String 简介 String 字符串函数允许您对字符串进行操作. 安装 Strin ...

  4. lua string函数

    lua的string函数: 参数中的index从1开始,负数的意义是从后开始往前数,比如-1代表最后一个字母 对于string类型的值,可以使用OO的方式处理,如string.byte(s.i)可以被 ...

  5. Java String类具体解释

    Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...

  6. PHP 5 String 函数

    PHP 5 String 函数 PHP String 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. 函数 描述 addcslashes() 返回在指定的字符前添加反斜杠的字符串. add ...

  7. c++string函数详解

    string,一个极为好用了函数,学好了这些函数,在模拟以及字符串问题上,回节省很多很多的写代码时间,代码复杂度以及错误率,那么这一类函数都有那些功能呢?我们来逐一介绍(让你大吃一惊,还有这种操作?) ...

  8. openssl之EVP系列之8---EVP_Digest系列函数具体解释

    openssl之EVP系列之8---EVP_Digest系列函数具体解释     ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成     (作 ...

  9. scanf函数具体解释与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数.遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

  10. 经常使用socket函数具体解释

    经常使用socket函数具体解释 关于socket函数,每一个的意义和基本功能都知道,但每次使用都会去百度,參数究竟是什么,返回值代表什么意义.就是说用的少,也记得不够精确. 每次都查半天.常常烦恼于 ...

随机推荐

  1. 2021-3-9 excel导出

    public void ExportExcel(DataTable dt) { //要添加epplus的nuget包 ExcelPackage.LicenseContext = LicenseCont ...

  2. pandas 根据列的值选取所有行

    原文链接:https://blog.csdn.net/changzoe/article/details/82348913 在其他论坛上看到的,原文链接如上所示.为方便记忆,原文如下所示: 选取等于某些 ...

  3. C#/.NET/.NET Core优秀项目和框架每周精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)

    前言 注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯). 每周精选优秀的C#/.NET/.NET Core项目和框架,帮助 ...

  4. Azure Terraform(十四)Azure Key Vault 的机密管理

    一,引言 最近有网友私信我,将 Terraform 部署到 Azure 是一种将基础结构作为代码进行管理的好方法,但是如何使用 Azure Key Vault 来存储我们的 Secret ?在这篇博文 ...

  5. 应用管理平台Walrus开源,构建软件交付新范式

    今日,数澈软件Seal(以下简称"Seal")宣布正式开源 Walrus,这是一款基于平台工程理念的应用管理平台,致力于解决应用交付领域的深切痛点. 借助 Walrus 将云原生的 ...

  6. 2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长。 请输出

    2023-08-24:请用go语言编写.给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长. 请输出 ...

  7. DesignPattern-part2

    title: "modern C++ DesignPattern-Part2" date: 2018-04-10T19:08:49+08:00 lastmod: 2018-04-1 ...

  8. ES 2023新特性速解

    ES 2023新特性速解 一.新增数组方法 操作数组的方法 Array.prototype.toSorted(compareFn) //返回一个新数组,其中元素按升序排序,而不改变原始数组. Arra ...

  9. JavaAgent寄生在目标进程中引起的ClassNotFoundException

    今天有解决方案部的小伙伴反映,我公司XWind产品在分析客户应用程序的潜在性能问题时,总是显现诊断任务异常,为了定位问题的根因,我们马上要求解决方案部的小伙伴提供XWind相关的日志,从日志中找到了如 ...

  10. 「codeforces - 185D」Visit of the Great

    link. 简单提一下做法,注意到 \(k^{2^a}\equiv k^{2^b}\equiv-1\equiv (-1)^{2^{b-a}}=1\pmod{(k^{2^a}+1,k^{2^{b}}+1 ...