#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中的'_'替换任何空格''。如果没有空间,程序不应该打印任何东西。]如何正确替换字符串C++中的字符?
与我的代码目前的方式是,它输出“1”。当我运行条件检查false而不是true时,它会打印“_”。我不明白为什么要这样做,任何人都看到我不知道的问题? 我不允许使用该算法。头。我也只能在main,no函数或导入的头文件/类中工作。
我明白了,这是它是如何向我解释: 真要是空白 isspace为( ' ')//真 isspace为(' \ n ')//真 isspace为(' X')//假 没有奇怪它不起作用。非常感谢 – Flower
@Flower在if/while和其他条件语句在C/C++中工作的情况下,如果值非为零 - 假定为TRUE,且值等于零 - 则为FALSE。所以,从技术上讲,你甚至可以写下如果这样:if(isspace(passCode.at(i)))。 –
请注意,这将比“替换任何空间”做得更多。 – juanchopanza