string zodis;
sregex_token_iterator it(eil.begin(), eil.end(), std::regex("[A-Za-z]+"));
sregex_token_iterator reg_end;
for (; it != reg_end; ++it) {
zodis = it -> str();
/* ... */
}
基本上我使用上面的代码得到了这个词,但是我想知道字符串zodis
中字符串eil
的第一个字符位置是什么(字符串zodis
取自eil
)
我试着指向从begin()
返回的迭代器,但这只是给了我字符。
有什么想法吗?
答案 0 :(得分:0)
int basepoint=0;
while(whatever)
{
int c1=zodis.end()-zodis.begin();//the length of the word
int c2=eil.find(zodis,basepoint);//the starting position of the word
basepoint+=c1+c2;//start point for the find function for the next loop
}
这将找到所有单词起点(即使整行是同一个单词)
如果你有
的文本文件word word word word word
使用此
cout << c1 << " " << c2;
其中c1是从字符串长度中取出的单词,c2是起始位置, 会给你
4 0
4 5
4 10
4 15
4 20