所以我再次使用此程序,但遇到了另一个问题。我正在测试字符是否为空格。但是,它没有检测到空间,而是停止了循环,并且不再执行其他任何操作。这是我的代码:
string reet(char reet) {
if (isspace(reet) == true) {
return "IA";
}
else {
switch (reet) {
case 'a':
return "Zg";
break;
case'b':
return "dA";
break;
case 'c':
return "dG";
break;
case 'd':
return "aw";
break;
case 'e':
return "bw";
break;
case 'f':
return "dQ";
break;
case 'g':
return "cg";
break;
case 'h':
return "ZA";
break;
case 'i':
return "cQ";
break;
case 'j':
return "YQ";
break;
case 'k':
return "eA";
break;
case 'l':
return "dw";
break;
case 'm':
return "cw";
break;
case 'n':
return "ag";
break;
case 'o':
return "eQ";
break;
case 'p':
return "bA";
break;
case 'q':
return "aA";
break;
case 'r':
return "ZQ";
break;
case 's':
return "cA";
break;
case 't':
return "Yw";
break;
case 'u':
return "eg";
break;
case 'v':
return "bg";
break;
case 'w':
return "aq";
break;
case 'x':
return "bQ";
break;
case 'y':
return "Yg";
break;
case 'z':
return "Zw";
break;
default:
return " ";
break;
}
}
}
string enc(string input) {
string sketchyBois = input;
string bigBoi = "";
int yeetL = sketchyBois.length() + 1;
for (int x = 0; x < yeetL;) {
bigBoi = bigBoi + reet(sketchyBois[x]);
x++;
}
return bigBoi;
}
我只是想知道是否有人可以告诉我为什么这样做呢?谢谢!
答案 0 :(得分:7)
您需要更改
if (isspace(reet) == true)
到
if (isspace(reet))
或
if (isspace(reet) != 0)
因为isspace
only returns a non-zero int
value for a white space character,而不是bool
。
(请注意,就编码风格而言,通常优选在布尔测试中省略与true
或false
的比较,而只使用if (expr)
或if (!expr)
。)