C++常用的string字符串截断函数
C++中经常会用到标准库函数库(STL)的string字符串类,跟其他语言的字符串类相比有所缺陷。这里就分享下我经常用到的两个字符串截断函数:
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
//根据字符切分string,兼容最前最后存在字符
void CutString(string line, vector<string> &subline, char a)
{
//首字母为a,剔除首字母
if (line.size() < 1)
{
return;
}
if (line[0] == a)
{
line.erase(0, 1);
}
size_t pos = 0;
while (pos < line.length())
{
size_t curpos = pos;
pos = line.find(a, curpos);
if (pos == string::npos)
{
pos = line.length();
}
subline.push_back(line.substr(curpos, pos - curpos));
pos++;
}
return;
}
//根据空截断字符串
void ChopStringLineEx(string line, vector<string> &substring)
{
stringstream linestream(line);
string sub;
while (linestream >> sub)
{
substring.push_back(sub);
}
}
int main()
{
string line = ",abc,def,ghi,jkl,mno,";
vector<string> subline;
char a = ',';
CutString(line, subline, a);
cout << subline.size()<<endl;
for (auto it : subline)
{
cout << it << endl;
}
cout << "-----------------------------" << endl;
line = " abc def ghi jkl mno ";
subline.clear();
ChopStringLineEx(line, subline);
cout << subline.size() << endl;
for (auto it : subline)
{
cout << it << endl;
}
return 0;
}
函数CutString根据选定的字符切分string,兼容最前最后存在字符;函数ChopStringLineEx根据空截断字符串。这两个函数在很多时候都是很实用的,例如在读取文本的时候,通过getline按行读取,再用这两个函数分解成想要的子串。
C++常用的string字符串截断函数的更多相关文章
- string字符串成员函数
string字符串成员函数 string str1="aaa"; char c='c'; str1.assign("ABCAAAAAAABBBBB");//替换 ...
- 常用的php字符串处理函数
php常用的字符串处理函数 1.trim():从字符串的两端删除空白字符和其他预定义字符 ltrim():从字符串的左端删除空格和其他预定义字符 rtrim():从字符串的末端开始删除空白字符和其他预 ...
- 常用的JavaScript字符串处理函数及用法
最近参加了几次前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等,如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最 ...
- php中常用的处理字符串的函数
1.将字符串转换为数组的函数:str_split() array str_split ( string $string [, int $split_length = 1 ] ) string:输入字符 ...
- Java常用API——String字符串运算
一.字符串运算 String类 1.概述 String是特殊的引用数据类型,它是final类. 2.构造方法 String str = "abc"; 相当于: char date ...
- awk中的常用关于处理字符串的函数
1.替换字符串中的某一部分. 函数:gensub(/rexpr/,"replace","g","string"),gensub返回一个新的字 ...
- 常用的PHP字符串操作函数
1.strlen 但是要注意!如果字符串中是汉字等其他字符时候呢? $str = "我"; echo strlen($str); //一个汉字,在UTF8格式下,显示3, ANSI ...
- C++常用的字符串处理函数-全
这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出 包括:split string to int int to string join # ...
- Delphi中常用字符串处理函数
.copy(str,pos,num) 从str字符串的pos处开始,截取num个字符的串返回. 假设str为,)=,)='def' .concat(str1,str2{,strn}) 把各自变量连接起 ...
随机推荐
- Android 通知的基本用法
一.概念 通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望像用户发送一些提示消息的时候,然而此时应用程序并不在前台运行,此时就可以借助通知来实现.发出 ...
- .Net core_Excel 导出二维码(以导出箱单为例)
[AccessLogAttribute(Note = "导出条形码箱单 — 条形码")]public ActionResult ExportContract(string INNE ...
- Apache Maven从入门到升天
喜欢就点个赞呗! GitHub项目JavaHouse同步收录 1 引入 在日常 Java 开发中,Maven 应该是必不可少的一个工具了,当然也有人使用 Gradle 的.那么 Maven 究竟是个啥 ...
- componentWillMount VS componentDidMount
前言 这与React组件的生命周期有关,组件挂载时有关的生命周期有以下几个: constructor(){} componentWillMount(){} render(){} componentDi ...
- 升级xcode10.0, 终端运行 运行报错:Print: Entry, “:CFBundleIdentifier”, Does Not Exist
目录 问题原因 解决方法 终端解决 Print: Entry, ":CFBundleIdentifier", Does Not Exist 第一步: 去官网GitHub下载对应包就 ...
- JavaScript1 基础
JavaScript的组成 ·ECMAScript 描述了语言的语法和基本对象/ ·DOM 文档对象模型,描述处理网页内容/ BOM 浏览器对象模型 描述与浏览器进行交互的方法和接口 引入方式/ h ...
- Codeforce612C
You are given string s consists of opening and closing brackets of four kinds <>,{}, [], (). T ...
- springboot中的pom文件是如何管理依赖的
我们来看一下新建完成后的springboot中的pom文件 <?xml version="1.0" encoding="UTF-8"?> <p ...
- layedit添加首行缩进
由于在编辑的时候,有首行缩进的需求,并且,如果直接使用空格进行缩进,还会出现layedit看到的效果和实际显示的效果不一致的情况.多方搜索无果,于是决定修改源代码.具体步骤如下: 1.首先找到laye ...
- Vmware Workstation虚拟机
目录 一.虚拟机是什么? 二.虚拟机的作用: 三.虚拟机创建流程 四.新的虚拟机上安装系统 五.虚拟机里添加硬盘 六.磁盘分区 一.虚拟机是什么? 虚拟机指通过软件模拟的具有完整硬件系统功能的.运行在 ...