#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
string passCode;
passCode = "1 ";
int i;
for(i =0; i < passCode.length();i++){
if(isspace(passCode.at(i)) == true){
passCode.replace(i,1,"_");
}
}
cout << passCode << endl;
return 0;
}
上面的代码,我的指导是[用2个字符的字符串passCode中的'_'替换任何空格''。如果没有空间,则程序不应打印任何内容。]
用我的代码当前的样子,它输出“1”。当我在条件检查为false而不是true的情况下运行它时,它会显示“_”。我不明白为什么要这样做,有人看到我没有的问题吗?
我不允许使用该算法。 header 。我也只允许在main,没有函数或导入的头文件/类内工作。
最佳答案
如here所述,isspace不会返回 bool(boolean) 值。相反,它返回int,其中非零值表示true,零值表示false。您应该这样写支票:
if (isspace(passCode.at(i)) != 0)