#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