#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