首页 > 其他分享 >字符串分隔

字符串分隔

时间:2022-10-04 10:23:13浏览次数:43  
标签:分隔 string && 字符串 subindex include cout

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
bool findName(int subindex,string substring,string *name){
	subindex=substring.find("我叫");
	//cout<<subindex<<endl;
	//判断是否从 “我叫李宇博” 子字符串中找到 “我叫 ” 关键字 
	if( subindex>=0 && subindex <= substring.size()){	
		*name= substring.substr(subindex+4);		
		return true;
	}
	return false;
	
} 
bool findAge(int subindex,string substring,string *age){
	subindex=substring.find("我今年");
	//cout<<subindex<<endl;
	//判断是否从 “我今年13岁” 子字符串中找到 “我今年 ” 关键字 
	if( subindex>=0 && subindex <= substring.size()){	
		*age= substring.substr(subindex+6);		
		return true;
	}
	return false;	
} 
bool findadd(int subindex,string substring,string *add){
	subindex=substring.find("我家住在");
	//cout<<subindex<<endl;
	//判断是否从 “我今年13岁” 子字符串中找到 “我今年 ” 关键字 
	if( subindex>=0 && subindex <= substring.size()){	
		*add= substring.substr(subindex+8);		
		return true;
	}
	return false;	
} 
bool findweek(int subindex,string substring,string *week){
	subindex=substring.find("今天是");
	//cout<<subindex<<endl;
	//判断是否从 “我今年13岁” 子字符串中找到 “我今年 ” 关键字 
	if( subindex>=0 && subindex <= substring.size()){	
		*week= substring.substr(subindex+6);		
		return true;
	}
	return false;	
}
bool findlike(int subindex,string substring,string *like){
	subindex=substring.find("我喜欢吃");
	//cout<<subindex<<endl;
	//判断是否从 “我今年13岁” 子字符串中找到 “我今年 ” 关键字 
	if( subindex>=0 && subindex <= substring.size()){	
		*like= substring.substr(subindex+8);		
		return true;
	}
	return false;	
} 
 int main(){
    // find 查找字符串出现的位置   include <string>
	// substr 截取字符串  include <string>
	// size 获取字符串的长度 include <string>
	// length 获取字符串的长度 include <string>
    string data="我今年13岁,我叫李宇博,我家住在不知道,今天是星期天,"
	"我喜欢吃粑粑,我喜欢做打篮球,我的学校是太康三中,我的生日是1月1号,"
	"我的语文成绩是:0分,我的数学成绩是1分,我今天做了核酸检测,我想去北京旅游,"
	"我中午想吃王颜博推荐的麻辣毛蛋,我晚上想吃黄大山推荐的麻辣毛蛋,我明天想吃刘佳兴爱吃的深山粑粑";
	cout<<data<<endl;
	string name;
	string age;
	string add;
	string week,like;
	//子字符串 
	string substring;
	//子字符串的位置 
	int subindex;
	int old=0;
	int end=0;
	
	for(int i=0;i<15;i++){
		old=end;
		end=data.find(",",end==0?0:end+1);
		substring =data.substr(old==0?old:old,end-old);
		cout<<"这是源数据:"<<substring<<endl;
		if(findName(subindex,substring,&name)){	
			continue;
		}else if(findAge(subindex,substring,&age)){
			continue;
		}
		else if(findadd(subindex,substring,&add)){
			continue;
		}else if(findweek(subindex,substring,&week)){
			continue;
		}else if(findlike(subindex,substring,&like)){
			continue;
		}
	}
	cout<<"姓名:" <<name<<endl;
	cout<<"年龄:" <<age<<endl;
	cout<<"住址:" <<add<<endl;
	cout<<"星期:" <<week<<endl;
	cout<<"爱吃:" <<like<<endl;
	//大数据分析
	/*
	1.姓名:李宇博
	2.年龄:13
	3.家庭住址:不知道
	4.性别:男
	5.健康状态:健康
	6.学校:太康三中
	7.在学校表现如何:差
	8.喜欢吃的食物:粑粑
	9.喜欢做的事情:打篮球
	10.愿望是:去北京旅游
	11.今天中午要吃:王颜博推荐的麻辣毛蛋
	12.今天晚上要吃:黄大山推荐的麻辣毛蛋
	13.明天要吃:刘佳兴爱吃的深山粑粑
	*/
    return 1;
 
 }

  

标签:分隔,string,&&,字符串,subindex,include,cout
From: https://www.cnblogs.com/wangyueshuo/p/16753317.html

相关文章