比较引用字符串和字符串
c++ comparing a reference string to a string
我有一个方法,它有一个参数是一个字符串的引用,在方法中我想比较这个引用的字符串到另一个字符串,这个字符串是一个名为事务的对象的一部分,有一个事务数组。两个原始字符串都是std::字符串,我尝试使用==运算符,但这似乎不返回真,即使两个字符串是相同的。可能是在比较字符串的地址
这是我现在拥有的:
int Analyser::numSharesBoughtOf(string& stockSymbol)
{
// Your code
int Total=0;
for (int tranNum(0); tranNum<numOfTranactions; tranNum++)
{
if (stockSymbol == Transactions[tranNum].stockSymbol)
{
Total = Total + Transactions[tranNum].numShares;
}
}
if (Total > 0)
{
return Total;
}
else
{
return 0;
}
}
Transactions也是一个指向事务数组开始的指针,但这没有什么区别。编辑:谢谢你的回复,原来我在股票代码中输入了错误的名字…这个方法和使用john.pavan发布的.compare答案一样有效。不知道我之前怎么没有注意到这一点,因为我在使用visual studio调试控制台,我猜这是一件好事,我实际上并不负责为股票经纪人编写代码,哈哈
使用std::string::compare。请注意,它的工作原理类似于strcmp, 0表示它们相等。
...
if (stockSymbol.compare(Transactions[tranNum].stockSymbol) == 0) {
...
根据这些评论,这对你没有帮助。我能想到的唯一一件事就是你在比较不同情况下的字符串。因此,将两者都转换为较低,然后比较。
std::string copy1(stockSymbol);
std::string copy2(Transactions[tranNum].stockSymbol));
std::transform(copy1.begin(), copy1.end(), copy1.begin(), ::tolower);
std::transform(copy2.begin(), copy2.end(), copy1.begin(), ::tolower);
if (copy1 == copy2) {
...
相关文章:
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 字符串引用参数的效率C++
- C++字符串引用不能共存
- 尝试使用字符串引用已删除的函数
- 设置可变值通过字符串引用它
- std::串联的字符串引用是安全的
- 字符串引用(函数)的差异
- 字符串引用和常量字符指针的函数重载
- 将浮点数分配给字符串引用有效 - 为什么
- 常量字符串引用作为非类型模板参数
- 函数,该函数返回一个字符串引用c++
- 如何实例化C++成员字符串引用
- c++函数返回NULL字符串引用
- 在 C++ 中返回 const 字符串引用的字符串文本
- CPP 中的字符串引用处理
- 为什么我的字符串引用成员变量在C++中设置为空字符串
- 了解返回字符串引用的函数中的"const"
- c++在同一个函数中返回字符串引用和传递字符串引用
- System::对C++char*参数的字符串引用
- 正在更改conststd::字符串引用的referent