详解C++字符串常用操作函数(查找、插入、截取、删除等)

1. 字符串查找函数

1.1 find 函数

原型为:unsigned int find(const basic_string &str) const;

作用:查找并返回str在本串中第一次出现的位置,位置从0开始

例子如下:

#include <iostream>
using namespace std;

int main() {

 string str = "i love china. china love me";
 string find_str = "love";

 cout << str.find(find_str);  // 2

 return 0;
}

2. 字符串插入函数

2.1 append

  • 函数原型为:string append(const char* s) ;
  • 作用:将字符串s添加到本串尾,改变本串
  • 例子如下:
#include <iostream>
using namespace std;

int main() {

 string str = "i love china. ";
 char append_str[] = "china love me";

 cout << str.append(append_str) << endl;  // i love china. china love me
 cout << str << endl;       // i love china. china love me

 return 0;
}

2.2 insert

  • 函数原型为:string & insert(unsigned int p0, const char * s);
  • 作用:将s所指向的字符串插入在本串中位置p0之前,改变本串
  • 例子如下:
#include <iostream>
using namespace std;

int main() {

 string str = "i love . china love me";
 char insert_str[] = "china";

 cout << str.insert(7, insert_str) << endl;  // i love china. china love me
 cout << str << endl;       // i love china. china love me

 return 0;
}

3. 字符串截取函数

3.1 substr

  • 函数原型为:string substr(unsigned int pos, unsigned int n) const;
  • 作用:取子串,取本串中位置pos开始的n个字符,构成新的string类对象作为返回值
  • 例子如下:
#include <iostream>
using namespace std;

int main() {

 string str = "i love china. china love me";

 cout << str.substr(2, 22) << endl;  // love china. china love

 return 0;
}

4. 字符串删除函数

4.1 函数

  • 原型1为:string & erase(unsigned int pos);
  • 作用1:删除本串pos位置及之后的所有字符,改变本串
  • 函数原型2为:string & erase(unsigned int pos, unsigned int n);
  • 作用2:删除本串pos位置及之后的共n个字符,改变本串
  • 例子如下:
#include <iostream>
using namespace std;

int main() {

 string str1 = "i love china. china love me";

 cout << str1.erase(12) << endl;  // i love china
 cout << str1 << endl;      // i love china

 string str2 = "i love china. china love me";

 cout << str2.erase(7, 18) << endl;  // i love me
 cout << str2 << endl;      // i love me

 return 0;
}

到此这篇关于C++字符串常用操作函数(查找、插入、截取、删除等)的文章就介绍到这了,更多相关C++字符串操作函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++ 字符串string和整数int的互相转化操作

    一.string转int的方式 1.采用最原始的string, 然后按照十进制的特点进行算术运算得到int,但是这种方式太麻烦,这里不介绍了. 2.采用标准库中atoi函数. string s = "12"; int a = atoi(s.c_str()); 对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等. 3.采用sstream头文件中定义的字符串流对象来实现转换. istringstream is("12"); //构造输

  • C++ string字符串的修改与替换方法详析

    字符串内容的变化包括修改和替换两种.本节将分别讲解字符串内容的修改和字符串内容的替换. 字符串内容的修改 可以通过使用多个函数修改字符串的值.例如 assign(),operator=,erase(),交换(swap),插入(insert)等.另外,还可通过 append() 函数添加字符. 下面逐一介绍各成员函数的使用方法. assign()函数 使用 assign() 函数可以直接给字符串赋值.该函数既可以将整个字符串赋值给新串,也可以将字符串的子串赋值给新串.其在 basic_string

  • C++ 删除字符串的2种方法小结

    C++实现删除给定字符串的给定字符串思路主要有这么几种实现方式: 1.KMP算法 2.用STL的string的 find,然后用erase 3.用C的strstr找到字串位置,然后用strncpy写到新串中 4.用boost库,用正则表达式 测试过的完整代码: 第一种方法: #include<iostream> #include <string> using namespace std; void deletestr(const char *str, const char* sub

  • C++ 实现输入含空格的字符串

    1.scanf函数(包含头文件#include <stdio.h>) scanf函数一般格式为scanf("%s",st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格,tab或者回车的字符串是不可以的. 解决方法如下: 1. 利用格式符"%[]"它的作用为扫描字符集合. Scanf("%[^c]",str); 其中"c"是一个具体的字符常量(包括控制字符). 当输入字符串时,字符&q

  • C++处理输入字符串并转为数组的操作

    最近在做题的时候在处理输入时遇到一个令人头疼的问题,今天解决了和大家分享一下: 比如题目要求的输入为一行数,数与数之间用空格间隔开,数的个数未知,数也有正有负: 11 -2 65 7 那么如何把这个输入保存到数组a中,且数组a中的值为a[0]=11,a[1]=-2,a[3]=65,a[4]=7呢? 先看代码: #include <iostream> #include <stdio.h> using namespace std; int main() { int a[20]; int

  • C++ 将字符串值赋给CHAR数组的实现

    我就废话不多说啦,大家还是直接看代码吧~ CHAR name[50]; strcpy(name, "tagname"); 补充:将char* 赋值给std::string的一些陷阱 这段时间,总是要使用char或者char* 赋值给std::string,踩了不少坑.于是写了个测试代码,如果你不想看我的代码,可以跳到下面直接看总结: #include <string> #include <iostream> using namespace std; int ma

  • C++获取字符串长度的几个函数方式

    C/C++ strlen(str).str.length().str.size().sizeof(str)都可以求字符串长度. 其中str.length().str.size().sizeof(str)是用于求string类对象的成员函数 strlen(str)是用于求字符数组的长度,其参数是char*. 补充知识:获取字符串长度的函数sizeof().strlen().length().size()详解和区别 在C++中计算长度的函数有四种,它们分别是sizeof() ,size(),strl

  • 详解C++字符串常用操作函数(查找、插入、截取、删除等)

    1. 字符串查找函数 1.1 find 函数 原型为:unsigned int find(const basic_string &str) const; 作用:查找并返回str在本串中第一次出现的位置,位置从0开始 例子如下: #include <iostream> using namespace std; int main() { string str = "i love china. china love me"; string find_str = "

  • 详解PHP字符串替换str_replace()函数四种用法

    下面通过本文给大家分享PHP字符串替换str_replace()函数4种用法,具体内容如下所示: mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 该函数返回一个字符串或者数组.该字符串或数组是将subject中全部的search都被replace替换之后的结果. 1.$search,要替换的字符串,或数组 2.$replace,被用来替换的字符串或数组 3.$subjec

  • 详解JavaScript中常用的函数类型

    网页中的java代码需要写在JavaScript中,里面部分少不了函数,介绍一下JavaScript中常用的函数类型. 1.可变函数 <script> function show(){ alert("第一个..."); } function show(str){ alert("第二个"); } function show(a,b){ alert("第三个..."); alert(a+":"+b); } </s

  • python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 = "hello bei jing " name2 = '''hello shang hai haha''' python中的字符串一旦声明,是不能进行更改的,如下: #字符串为不可变变量,即不能通过对某一位置重新赋值改变内容 name = 'hello' name[0] = 'k' #通

  • Python学习之字符串常用操作详解

    目录 1.查找字符串 2.分割字符串 3.连接字符串 4.替换字符串 5.移除字符串的首尾字符 6.转换字符串的大小写 7.检测字符串(后续还会更新) 1.查找字符串 除了使用index()方法在字符串中查找指定元素,还可以使用find()方法在一个较长的字符串中查找子串.如果找到子串,返回子串所在位置的最左端索引,否则返回-1. 语法格式: str.find(sub[,start[,end]]) 其中,str表示被查找的字符串.sub表示查找的子串.start表示开始索引,缺省时为0.end表

  • Python3.5字符串常用操作实例详解

    本文实例总结了Python3.5字符串常用操作.分享给大家供大家参考,具体如下: 一.输入与输出 #输入与输出 str = input("请输入任意字符:") print(type(str)) #input获取的数据类型皆为字符串 print(str) 运行结果: 请输入任意字符:abc <class 'str'> abc #格式化输出 name = "liu" age = 18 print("My name is %s, and I'm %d

  • 详解C语言常用的一些转换工具函数

    1.字符串转十六进制 代码实现: 2.十六进制转字符串 代码实现: 或者 效果:十六进制:0x13 0xAA 0x02转为字符串:"13AAA2" 3.字符串转十进制 代码实现: 第一种,如果带负号 这个就是atoi函数的实现: 效果:字符串:"-123" 转为 -123 第二种,如果不带负号: 效果:字符串:"123" 转为 123 第三种:包含转为浮点数: 效果:字符串:"123.456" 先转为 123456,然后除以1

  • 详解Python中常用的图片处理函数的使用

    目录 cvtColor函数 split()和merge() threshold()函数 自定义threshold函数进行二值化 色度函数applyColorMap cvtColor函数 这个函数有两个参数 1,src 要进行变换的原图像 2,code 转换代码标识 例子: import cv2 image=cv2.imread("ddd.jpg") image1=cv2.cvtColor(image,cv2.COLOR_BGR2BGRA) cv2.imshow(""

  • 详解python算法常用技巧与内置库

    近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想去找点python的刷题常用库api和刷题技巧来看看.类似于C++的STL库文档一样,但是很可惜并没有找到,于是决定结合自己的刷题经验和上网搜索做一份文档出来,供自己和大家观看查阅. 1.输入输出: 1.1 第一行给定两个值n,m,用空格分割,第一个n决定接下来有n行的输入,m决定每一行有多少个数字,m个数字均用空格分隔. 解决办法

  • 详解python字符串驻留技术

    前言 每种编程语言为了表现出色,并且实现卓越的性能,都需要有大量编译器级与解释器级的优化. 由于字符串是任何编程语言中不可或缺的一个部分,因此,如果有快速操作字符串的能力,就可以迅速地提高整体的性能. 在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能.本文的目的不仅在于介绍 Python 的内部知识,而且还旨在使读者能够轻松地浏览 Python 的源代码:因此,本文中将有很多出自CP

随机推荐