2015-10-20 146 views
-5
bool fitsKey3(string n) { 
    int ncheck = str.length(n); 
    if (ncheck = KEY3) { 
     return true; 
    } else { 
     return false; 
    } 
} 

上述函數使用字符串「n」,它是從輸入文件給函數的字符串。我想編寫這個函數來檢查輸入文件(這是一個無人機項目)中的這個「標識符代碼」的長度,如果安全代碼的長度爲等於到恆定整數「KEY3(= 50)」,返回true,否則,返回false。C++字符串長度檢查

我該如何解決這個問題的設置?

+6

您正在使用'='而不是'=='。 –

+0

'ncheck == KEY3','='和'=='是不同的 –

回答

4

=分配的KEY3ncheck值。

==比較ncheckKEY3平等。

而且,除非你被代碼行支付,我建議使用更簡單,更清晰的形式:

return n.length() == KEY3; 

(我糾正你的length()成員函數的用法,因爲我想它是隻有一個錯字)。

正如Anon Mail所指出的,除非你想在每次調用該函數時創建一個字符串的副本,否則我建議只傳遞一個對它的引用(const,因爲你是沒有修改):

bool fitsKey3(string const& n) 
+0

我也建議你通過常量引用(const string&n)而不是按值傳遞字符串n。否則,你正在做一個不必要的字符串副本。 –

+0

@AnonMail好的,謝謝。補充說,答案。 – emlai

0

我會寫這樣的:

bool fitsKey3(string n) { 
    return n.length() == KEY3; 
} 

你做兩個操作:

  1. 獲取字符串長度由n.length()
  2. 用KEY3比較長(注:使用==比較)