2014-06-12 45 views
-1
#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。以上是我的代碼示例。我如何以最簡單的方式解決這個問題?謝謝。C++使用==運算符將字符串比較爲0?

+3

可能你的意思是「0」。 –

+2

不確定你的意圖......與「0」比較或比較「0」 – jsantander

+1

問題是什麼?你想檢查是否輸入了字符串「0」?或檢查NULL? – Theolodis

回答

1

考慮寫作if(A1 == "0")。 C++ std::string過載==運算符允許此操作。

要檢查字符串是否爲空,請寫入if (A1.empty())if (!A1.size())。我更喜歡第二個公式,因爲它與其他C++標準庫對象一致。

我個人更喜歡在std::string上使用compare方法。這使得您的代碼更易被其他開發人員讀取(例如,Java開發人員不希望在此上下文中看到==)。

+0

好吧,它現在的作品,我的大部分程序使用int數據類型,然後當我cin >>一個字母表,程序被竊聽,我的循環失敗,試圖將所有數據類型更改爲字符串,doesn不知道它會起作用或nt但感謝:D – user3732985

1

C++是一種強類型語言。 0本身就是一個數字。 "0"是一個字符串文字。有些功能可以完成轉換,例如。 std::stoi(字符串到整數)和std::to_string(很多東西要字符串),但。

所以你有很多可能的解決方案在這裏,以獲得相同的類型。對於這種簡化的情況,沒有真正的最佳解決方案。