#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, он печатает «_». Я не понимаю, почему это делается, кто-нибудь видит проблему, которой я не занимаюсь? Мне не разрешено использовать алгоритм. заголовок. Мне также разрешено работать только внутри основного, никаких функций или импортированных заголовков/классов.
я вижу, это то, как он объяснил мне: верно, если пробельные isspace (' ') // истинно isspace (' \ п ') // истинно isspace (' х') // ложному нет интересно, что это не сработало. thanks alot – Flower
@Flower В контексте того, как if/while и другие условные операторы работают в C/C++, это значения, отличные от нуля, считаются TRUE, а значения, равные нулю, - FALSE. Итак, технически вы могли бы даже написать свой, если бы так: if (isspace (passCode.at (i))). –
Обратите внимание, что это сделает больше, чем «Заменить любое пространство' '' '". – juanchopanza