C++ 字符串分割,并把子字符串转换成int型整数
主要涉及到string类的两个函数find和substr:
find()函数的用法:
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos
//find函数返回类型 size_type
string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
string flag;
string::size_type position; //find 函数 返回jk 在s 中的下标位置
position = s.find("jk");
if (position != s.npos) //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
{
cout << "position is : " << position << endl;
}
else
{
cout << "Not found the flag" + flag;
} //find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置
flag = "c";
position = s.find_first_of(flag);
cout << "s.find_first_of(flag) is : " << position << endl; //从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标
position=s.find("b",);
cout<<"s.find(b,5) is : "<<position<<endl; //查找s 中flag 出现的所有位置。
flag="a";
position=;
int i=;
while((position=s.find_first_of(flag,position))!=string::npos)
{
//position=s.find_first_of(flag,position);
cout<<"position "<<i<<" : "<<position<<endl;
position++;
i++;
} //查找flag 中与s 第一个不匹配的位置
flag="acb12389efgxyz789";
position=flag.find_first_not_of (s);
cout<<"flag.find_first_not_of (s) :"<<position<<endl; //反向查找,flag 在s 中最后出现的位置
flag="";
position=s.rfind (flag);
cout<<"s.rfind (flag) :"<<position<<endl;
}
substr()函数用法:
功能:获得子字符串
返回值:子字符串
string a=s.substr(0,5); 从第0位开始的长度为5的字符串.默认时的长度为从开始位置到尾
string字符串分割,并把子字符串放入数组:
#include <iostream>
#include <vector>
#include <string.h>
using namespace std; vector<string> fenge1(string a,char c)
{
vector<string> b;
int pos=,i,len=a.length();
for(i=;i<len;i++)
{
if(i==&&a[i]==c)
pos=i+;
else if(a[i]==c)
{
b.push_back(a.substr(pos,i-pos));
pos=i+;
}
else if(i==len-)
{
b.push_back(a.substr(pos,i-pos+));
}
}
return b;
} vector<string> fenge2(string a,char c)
{
a=a+c;
int i,len=a.length(),pos;
vector<string> b;
for(i=;i<len;i++)
{
pos=a.find(c,i);
if(pos<len)
{
b.push_back(a.substr(i,pos-i));
i=pos;
}
}
return b;
} int main()
{
string s="12,11,4";
vector<string> a=fenge2(s,',');
for(auto i:a)
cout<<i<<' ';
}
string字符串分割,并把数字子字符串转成int型,放入数组:
用到从c_str(),atoi()函数,字符串转换成int型 int k=atoi(str.substr(i,pos-i).c_str());
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
using namespace std; typedef string::size_type sz; int main()
{
string str="11,12,13,14";
string p=",";
str=str+p;
vector<int> a;
sz i,pos,len=str.size();
for(i=;i<len;i++)
{
pos=str.find(p,i);
if(pos<len)
{
int k=atoi(str.substr(i,pos-i).c_str());
a.push_back(k);
i=pos;
}
}
for(int j:a)
cout<<j<<endl;
return ;
}
C++ 字符串分割,并把子字符串转换成int型整数的更多相关文章
- C# 中怎么将string转换成int型
int intA = 0;1.intA =int.Parse(str);2.int.TryParse(str, out intA);3.intA = Convert.ToInt32(str);以上都可 ...
- VB中将INT型转换成STRING和从STRING转换成INT型的函数
CStr 函数示例本示例使用 CStr 函数将一数值转换为 String. Dim MyDouble, MyStringMyDouble = 437.324 ' MyDouble 为 Double ...
- ADO 连接数据库,取到VT_DATE型日期转换成 int型
DATE dt = vDate;(vDate是从数据库取出来的值,类型为_variant_t) COleDateTime odt = COleDateTime(dt); CString strdate ...
- String转换成int型
private boolean judge(String str){ int year = 0; try{ year = Integer.valueOf(str).intValue(); }catch ...
- java如何将char类型的数字转换成int型的数字,而不是Ascii
如何把 char ‘3’ 转为 int 3, 大家应该知道,不能直接转化,那样得到是‘3’的Ascii. 如下面: public class Leet { public static void mai ...
- sql 将8位字符串转换成日期型
将8位字符串转换成日期型,方法如下: ),)
- iOS 16进制字符串转换成int十进制
NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWi ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
- java字符串转义,把<>转换成<>等字符【原】
java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...
随机推荐
- CSS以及JS各种库的在线CDN引用地址
JS类—— html5.js,让你的IE浏览器支持H5新特性:http://html5shiv.googlecode.com/svn/trunk/html5.js (记得要注释判断哦) JQuer ...
- Jasper_crosstab_Parameter_Crosstab Header
corsstab: Q : how to show filed value at crosstab Header Part? A : via pass parameter in crosstab. i ...
- Appium禁止appium setting和unlock在设备上重复安装
1.文件:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-dri ...
- nodejs 学习(2) 中间件
var connect=require('connect'), morgan=require('morgan'),//日志 bodyparser=require('body-parser'), ses ...
- linux下php以fastcgi模式运行
关于PHP以fastcgi方式运行的文章,网络上较多,也许由于转载的原因,有些地方不甚明了,笔者亲自测试,整理成文,供大家参考. 1.linux系统 [root@localhost /]# cat / ...
- python部分 + 数据库 + 网络编程
PS:附上我的博客地址,答案中略的部分我的博客都有,直接原标题搜索即可.https://www.cnblogs.com/Roc-Atlantis/ 第一部分 Python基础篇(80题) 为什么学习P ...
- Web开发入门不得不看章
引 如今,各种互联网的Web应用程序层出不穷,那么如何快速入门,成长为一个优秀的Web开发工作者呢? 这个问题不容易回答,几乎所有的培训机构都不能清晰地解答. 所以对于Web开发刚刚入门的菜鸟们,我觉 ...
- linux 下node升级
npm install -g n n stable 安装的路径: cd /usr/local/n/versions/node/10.15.3 修改环境变量 cd /etc sudo vim profi ...
- 【extjs6学习笔记】0.0 准备
1.下载ExtJS 6 下面是Ext JS 6正式版的GPL版本下载地址 https://www.sencha.com/legal/gpl/ 2.下载sencha cmd 安装完成后,命令行运行出现以 ...
- LR中测试dubbo接口的脚本
import lrapi.lr;import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.Re ...