C++:string字符串的切片方式

 更新时间:2023年06月16日 09:35:23   作者:西里都有的吗  
这篇文章主要介绍了C++:string字符串的切片方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C++:string字符串的切片

string字符串在C++中不能直接进行切片操作,需要借助函数find和substr进行

1.substr用于进行已知序号的切片操作 

substr语法为 :

string对象.substr(起点 , 切片长度)

operate_str = initial_str.substr(0, 3);

代码演示如下

    //使用substr函数实现已知序号的字符串切片
    string initial_str = "0123456789";
    string operate_str;
    operate_str = initial_str.substr(0, 3); //从0号开始,切片长度为3,即截取0到(0 + 3 - 1)号
    cout << "operate_str = " << operate_str << endl; //输出结果为012

2.find函数和substr函数

配合用于进行已知特征字符串的字符串切片

find函数处理对象中存在特征字符串时返回特征串第一个字符的序号,若对象中不存在特征字符串则返回-1

find函数语法为:

string对象.find(特征字符串)

int start = initial_str.find(key1); 

以下配合substr实现已知特征字符串的字符串切片

    //使用substr函数配合find函数实现已知特征串的字符串切片
    string key1 = "23"; //定义特征串
    int len = 5; //定义切片长度
    int start = initial_str.find(key1); //返回特征串第一个字符的序号,此处为2
    string key2 = "abc"; //测试不存在特征串返回值
    int result = initial_str.find(key2);
    cout << "result = " << result << endl; //对象中不存在特征串,此处输出为 -1
    operate_str = initial_str.substr(start, len); //从start开始,切片长度为len,即截取start到(start + len - 1)号
    cout << "operate_str = " << operate_str << endl; //输出结果为23456

(变量与只使用substr时相同)

C++特定分隔符将字符串进行分割

使用特定分隔符’\n’将字符串进行分割,如传参数“2023\n01\n13”,则输出结果为

2023
01
13

void SplitString(std::string str){
	if(str.empty()){
		return;
	}
	vector<std::string> res;
	const char split = '\n'; //分割符
	std::string strs = str + split;
	size_t i = 0;
	size_t pos = strs.find(split,i);
	while(pos ! = strs.npos){
		string temp = strs.substr(i, pos - i);
		res.push_back(temp);
		i = pos + 1;
		pos = strs.find(split,i) 
	}
	for(int i=0;i<res.size();i++){
		cout>>res.[i]>>endl;
	}
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++ invoke与function的区别解析

    C++ invoke与function的区别解析

    invoke函数的实现原理是通过使用SFINAE(Substitution Failure Is Not An Error)技术来判断可调用对象的类型,并根据类型调用对应的调用方式,这篇文章主要介绍了C++ invoke与function的区别,需要的朋友可以参考下
    2023-10-10
  • C语言实现学生管理系统总结

    C语言实现学生管理系统总结

    这篇文章主要为大家详细介绍了C语言实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C++中友元函数(friend)解析

    C++中友元函数(friend)解析

    这篇文章主要分享了C++友元函数讲解,C++提供了一种形式的访问权限,叫做友元,友元有三种,分别是友元函数、友元类和友元成员函数,下面将详细介绍该内容,需要的小伙伴可以参考一下
    2022-01-01
  • C++获取GPU显卡信息的示例代码

    C++获取GPU显卡信息的示例代码

    这篇文章主要为大家详细介绍了如何使用C++获取GPU显卡信息,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-02-02
  • OpenCV图像处理基本操作详解

    OpenCV图像处理基本操作详解

    这篇文章主要为大家详细介绍了OpenCV图像处理基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Qt数据库应用之实现数据打印到纸张

    Qt数据库应用之实现数据打印到纸张

    关于Qt打印内容到纸张,网上的办法非常多,比如有些直接用painter绘制,逐步控制分页打印。本文介绍的方法则是将内容作为html设置到文档对象,再调用文档对象的print方法传入QPrinter对象打印,感兴趣的同学可以了解一下
    2022-01-01
  • 清除3389远程登录日志

    清除3389远程登录日志

    这篇文章主要介绍了清除3389远程登录日志示例,需要的朋友可以参考下
    2014-01-01
  • C++教程之变量的作用域与生命周期详解

    C++教程之变量的作用域与生命周期详解

    在C++编程中,变量的作用域和生命周期是非常重要的概念。了解这些概念可以帮助开发人员编写更好的代码并避免错误。在本文中,我们将探讨C++中变量的作用域和生命周期,以及如何正确地使用它们
    2023-04-04
  • C++之std::vector删除元素的几种方式及区别说明

    C++之std::vector删除元素的几种方式及区别说明

    这篇文章主要介绍了C++之std::vector删除元素的几种方式及区别说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 如何通过函数指针调用函数(实现代码)

    如何通过函数指针调用函数(实现代码)

    指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数
    2013-09-09

最新评论