2015-10-20 106 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比较长(注:使用==比较)