按标签分隔输入

问题描述 投票:1回答:1

我试图通过“标签”ex来分隔用户的输入:<b></b>

码:

string toAdd;    
int iSlide = 0;    //before the first tag
iSlide = input.find("<");
toAdd = input.substr(0, iSlide);
cout << toAdd << endl;    //the first tag                                   
//   cout << input[input.find(">")+1] << endl;                         
int iNext = input.find(">");    
cout << input[iNext +1];    
toAdd = input.substr(iSlide, iNext+1);    
cout << toAdd << endl;    
iSlide = input.find(">" + 1);

我正在使用示例Hello my name is <b>1 Tori </b>2 wow!注释掉的cout语句打印正确的结束标记,但是当我使用它来进行子字符串时,它似乎使用了最后一个结束标记。关于我在这里可能缺少什么的想法?

c++ substring substr
1个回答
0
投票

当你调用input.substr(iSlide, iNext+1)时,你似乎希望这两个参数都成为input的索引。只有第一个参数是索引。第二个参数是长度。结果,你的字符串太长了。如果你计算匹配的长度,那么你应该得到你想要的字符串。

也是未来的暗示,不要在一行文本中放置多行指令。很难阅读,理解和调试你编写它的方式。为每行源代码做一件事你会更高兴。

© www.soinside.com 2019 - 2024. All rights reserved.