C ++使用==运算符将字符串比较为0?

时间:2014-06-12 07:31:18

标签: c++ string

#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
int main()
{
  string A1;
  cin>>A1;
  if(A1==0)
   {
     cout<<"Success!";
   }
  else
   {
     cout<<"Failure!";
   }
system("PAUSE");
return 0;
}

C ++初学者。我试图使用==运算符将键入的字符串的值与0进行比较。以上是我的代码示例。如何以最简单的方式解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:1)

考虑撰写if(A1 == "0")。 C ++ std::string重载 ==运算符以允许此操作。

要检查字符串是否为空,请写下if (A1.empty())if (!A1.size())。我更喜欢第二种配方,因为它与其他C ++标准库对象一致。

我个人更喜欢在compare上使用std::string方法。这使得您的代码更易于被其他开发人员阅读(例如,Java开发人员不愿意在此上下文中看到==。)

答案 1 :(得分:1)

C ++是一种强类型语言。 0本身就是一个数字。 "0"是一个字符串文字。有些功能可以进行转换,例如。但是std::stoi(String to Integer)和std::to_string(很多东西要串起来)。

所以你在这里有很多可能的解决方案,以使类型相等。对于这种简化的案例,没有真正的最佳解决方案。