```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. Redis从入门到放弃(4):3种新数据类型

    1.介绍 前面的文章已经介绍了redis的5种基本数据类型,redis6中另外还有3种特殊的数据类型,分别是 Bitmaps (位图).HyperLogLogs(基数统计)和 geospatial ( ...

  2. os模块常用操作

    作者:Simon0903 链接:https://www.jianshu.com/u/2b4bc3b5e6fc 來源:简书 os.getcwd() #返回当前工作目录 os.chdir(path) #改 ...

  3. 解决:ValueError: Cannot mask with non-boolean array containing NA / NaN values

    错误原因:这里就是说,分组这一列里面,包含了非字符串的内容,比如数字.因为 .str.contains 的使用就要求这个字段必须是字符串,不能掺杂数字的. 解决方案: # 包含对应关系的所有行 dat ...

  4. 深度系统安装mysql

    # 安装 Mysql 8.0.19下载 MySQL Community Server 8.0.19 [Compressed TAR Archive](mysql-8.0.19-linux-glibc2 ...

  5. 镜像救援更改root密码

    第一种:镜像救援 1,确定有镜像,要有镜像才行. 2,重启客户端 3, 在开机读白条logo界面, 键入Esc一次(只能按一次第二次就退出了)(需要考验手速),选择CD或者U盘 4,进入救援模式 5, ...

  6. Go代码包与引入:如何有效组织您的项目

    本文深入探讨了Go语言中的代码包和包引入机制,从基础概念到高级应用一一剖析.文章详细讲解了如何创建.组织和管理代码包,以及包引入的多种使用场景和最佳实践.通过阅读本文,开发者将获得全面而深入的理解,进 ...

  7. SpringBoot + Redis + Token 解决接口幂等性问题

    前言 SpringBoot实现接口幂等性的方案有很多,其中最常用的一种就是 token + redis 方式来实现. 下面我就通过一个案例代码,帮大家理解这种实现逻辑. 原理 前端获取服务端getTo ...

  8. ionic4请求skynet服务器的资源跨域问题

    最近在做一个后台接口, 顺便用ionic4写了个简单的管理后台, 本来skynet管理后台监听的端口是6666, 但是发现chrome默认对一些接口不友善, 虽然可以通过设置启动参数来解决, 但是还是 ...

  9. 如何在.NET电子表格应用程序中创建流程图

    前言 流程图是一种常用的图形化工具,用于展示过程中事件.决策和操作的顺序和关系.它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程. 在企业环境中 ...

  10. 2023 ICPC 网络赛 II

    开场顺着读了 AC 不会,B 是 KDT 优化建图板子,让 zsy 确认了一下并制止他现在做.把 D 转化转化成了经典问题·,当时以为是网络流,所以 zsy 签完 M 就上去写了,写一半发现假了,问了 ...