Я пытаюсь сделать программу, хотя я уже закончил, мне нужно что-то еще. Итак, пользователь попросил дать ввод, если строка содержит * я хочу стереть первый * и записать ввод
getline(cin,str);
int k=str.length();
for(int i=0; i<=k; i++)
if(str[i]=='*')
string::iterator it;
it=str.begin()+i;
str.erase(it);
break;
cout<<str<<endl;
что я делаю не так?
Будьте очень осторожны, вам нужно использовать скобки {}
контролировать объем, а не табулирование!
Кроме того, используя =
в if
это назначение, а не проверка, вам нужно использовать ==
Вы повторяете, используя i
пока вы удаляете с помощью x
?
Вы можете упростить это, используя std::find
удалить первое вхождение *
:
str.erase(std::find(str.begin(), str.end(), '*'));