我有一些SKU需要通过字母数字代码来区分,例如D2 D3 D4等
我使用简单的if(lineVector [1] .find(“D2”))
但是当我使用多个语句执行此操作时,它似乎属于第一个if而且从不更改。我的问题是,发现是否正在看到D并决定它不需要过去,因为它找到了它。
任何建议
简言之,我的代码是
if (lineVector[7].find("D2"))
{
tempQuantity = 2;
totalQuantity += tempQuantity;
}
else if (lineVector[7].find("D3"))
{
tempQuantity = 3;
totalQuantity += tempQuantity;
}
else if (lineVector[7].find("D4"))
{
tempQuantity = 4;
totalQuantity += tempQuantity;
}
else if (lineVector[7].find("D5"))
{
tempQuantity = 5;
totalQuantity += tempQuantity;
}
else
{
tempQuantity = 1;
totalQuantity += tempQuantity;
}
答案 0 :(得分:0)
// string::find
#include <iostream> // std::cout
#include <string> // std::string
using namespace std;
int main ()
{
std::string str ("There are two needles in this haystack with needles.");
std::string str2 ("needle");
// different member versions of find in the same order as above:
std::size_t found = str.find(str2);
if (found!=std::string::npos)
std::cout << "first 'needle' found at: " << found << '\n';
return 0;
}
find函数返回成功匹配的索引。如果失败(未找到),则返回std :: string :: npos,其值不为零。
所以你必须将返回值与std :: string :: npos进行比较。
如果你有独特的skus使用集(如果需要排序顺序)或unordered_set(顺序无关紧要),我建议你。