我在2个程序中有两个非常相似的功能,如下所示。
/*
* Function: isalphaString
* Usage: isalphaString(str);
* ----------------------------
* Judge if all characters in the string is alpha.
*/
bool isalphaString(string str) {
for (int i = 0; i < str.size(); i++) {
if (! isalpha(str[i]))
return false;
}
return true;
}
第二个功能:
bool containsNonAlpha(string boardText) {
for (int i = 0; i < boardText.size(); i++) {
if (!isalpha(boardText[i])) {
return true;
}
}
return false;
}
但获得两种不同的编译结果。第一个我没有编译警告,但第二个我收到警告:&#34;比较不同符号的整数&#34; 。不知道为什么会这样。
答案 0 :(得分:0)
您无法将int
与std::string::size_type
进行比较,您需要更改此行:
for (int i = 0; i < boardText.size(); i++)
为:
for (string::size_type i = 0; i < boardText.size(); i++)
altought你可以在 C ++ 11 中使用更简单的范围循环:
for(char &c : boardText) {
check_if_alpha(c);
}