gpt4 book ai didi

c++ - c++问题中的substr

转载 作者:行者123 更新时间:2023-11-28 01:04:42 25 4
gpt4 key购买 nike

当我尝试执行程序时,第一次迭代的输出符合预期。但是对于第二次迭代,out 并没有按预期出现......

int main(){
string insertBuffer;
string valSep;
valSep = ":";
string configParamSep = "\r\n";
int configParamSepSize = 2;
string configParam;
string::size_type mCPos = 0;
string::size_type mCBeginPos = 0;
int finished = 0;
string one = "hai: yes";
string two = "tension: no";
insertBuffer = one + "\r\n" + two + "\r\n";

cout<<"OUTPUT:"<<"\n";

while (!finished){
if( !(mCBeginPos >= insertBuffer.length()) && ((mCPos = insertBuffer.find(valSep,mCBeginPos)) != string::npos)){
configParam = insertBuffer.substr(mCBeginPos,mCPos);
}else{
finished = 1;
break;
}
cout<<configParam<<"\n";
mCBeginPos = mCBeginPos + insertBuffer.find(configParamSep,mCBeginPos) + configParamSepSize;
}

return 0;
}

输出:

hai
tension: no

但预期的输出是:-

hai
tension

知道为什么会这样吗?

最佳答案

basic_string<CharType, Traits, Allocator> substr(
size_type _Off = 0,
size_type _Count = npos
) const;

第二个参数不是结束索引

一个简单的修复:configParam = insertBuffer.substr(mCBeginPos,mCPos - mCBeginPos);

关于c++ - c++问题中的substr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com