【发布时间】:2015-03-18 16:16:01
【问题描述】:
我正在尝试验证特定字符串是否在输入字符串中,如果是,则根据找到的字符串执行某些操作;但似乎无论如何它总是在做第一个任务......
if (inputString.find(str1) >= 0)
{
//do something
}
else if (inputString.find(str2) >= 0)
{
// do something else
}
else
{
std::cout << "Strange" << std::endl;
}
无论str1 是否存在于inputString 中,它总是进入// do something 块。
如果我这样做
int str1pos = inputString.find(str1);
int str2pos = inputString.find(str2);
if (str1pos >= 0)
{
//do something
}
else if (str2pos >= 0)
{
// do something else
}
else
{
std::cout << "Strange" << std::endl;
}
它似乎工作。这是为什么?我做错了什么?
【问题讨论】:
-
无符号整数总是大于或等于零。您是否阅读了
string::find的文档?
标签: c++