【发布时间】:2012-01-17 16:17:03
【问题描述】:
这是我的 C++ 代码:
string searchValue(string& str, char tag)
{
size_t pos1;
size_t pos2;
pos1=str.find(tag);
pos2=str.find(tag,pos1+1);
string result=(str.substr( pos1+1 ,(pos2-(pos1+1)) ));
str=str.substr(pos2+1);
return result;
}
目的是将一个字符串 (example=< feature token = "do" id = "98" freq = "1" />) 和一个字符 (tag='\"' 用于这个) 作为参数。
我打算让这个方法返回包含在 tag 参数的 2 次出现之间的字符串,同时删除字符串的部分 str 直到(并包括) tag 第二次出现的位置。
这是我的目标,我希望得到命令:
string s="< feature token = \"do\" id = \"98\" freq = \"1\" />";
cout<<searchValue(s,'\"')<<endl<<searchValue(s,'\"')<<endl<<searchValue(s,'\"')<<endl;
显示
do
98
1
我做错了吗?
【问题讨论】:
-
我们有大量的格式化文档。新人不是不读它的借口。
-
嗯,它符合你的预期吗?
-
您似乎只是告诉我们您对代码的期望,而不是您实际得到的。
-
你试过编译了吗?
-
@TomalakGeret'kal 虽然我同意您的信息精神,但让我们更好地欢迎新成员。我们不想变得像 comp.lang.c++ usenet 组。
标签: c++ string methods char substr