c++Primer6.5

部署运行你感兴趣的模型镜像

//实现功能:输入文本后,把文本中每个字符串的位置打印出来。

#include <iostream>

#include <string>
#include <vector>
#include <utility>
using namespace std;

typedef pair<short,short> location;
typedef vector<location> loc;
typedef vector<string> text;
typedef pair<text*,loc*> text_loc;


text_loc* separate_words(const vector<string> *text_file)
{
vector<string> *words=new vector <string>;
vector<location> *locations=new vector<location>;

short line_pos=0;


for(;line_pos<text_file->size();++line_pos)
{

short word_pos=0;
string text_line=(*text_file)[line_pos];
string::size_type pos=0,prev_pos=0;

while((pos=text_line.find_first_of(' ',pos))!=string::npos)
{


words->push_back(text_line.substr(prev_pos,prev_pos-pos));


locations->push_back(make_pair(line_pos,word_pos));


++word_pos;
prev_pos=++pos;
}


words->push_back(text_line.substr(prev_pos,pos-prev_pos));
locations->push_back(make_pair(line_pos,word_pos));
}
return new text_loc(words,locations);
}

void printof(const text_loc *text_locations)
{
vector<string> *words=new vector <string>;
vector<location> *locations=new vector<location>;

vector<string>::iterator it=text_locations->first->begin(),
it_end=text_locations->first->end();
vector<location>::iterator loc_it=text_locations->second->begin();
string::size_type pos=0,prev_pos=0;

while(it!=it_end)
{
int _sizeof=(*it).size();
string it_str=(string)(*it);
string it_test=it_str;
short first_ =loc_it->first;
short sec_=loc_it->second;
if(it_str.length()!=0)
{
cout<<it_str<<" ("<<loc_it->first<<","<<loc_it->second<<")"<<endl;

}

//if((*it)[(*it).size()-1]!=' ')
//{
//
//}
++it;
++loc_it;
//if((*it)!=" ")//
//{
// words->push_back(it->substr())
//}
}
}
int main()
{

string test_fo;
vector<string> text_file;
while(cin>> test_fo)
{
text_file.push_back(' '+test_fo);
}

text_loc *text_locations=separate_words(&text_file);
printof(text_locations);

}

//
//
//string test_fo;
//string test_line[10];
//vector<test_line> text_file=new vector<string[]>;

//string name("AnnaBelle");
//int pos=name.find("Anna");
//
// if(pos==string::npos)
// {
// cout<<"Anna not found"<<endl;
//
// }
// else
// {
// cout<<"Anna found at pos:"<<pos<<endl;
// }

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值