C ++ Как я могу стереть символ из строки (вход)

Я пытаюсь сделать программу, хотя я уже закончил, мне нужно что-то еще. Итак, пользователь попросил дать ввод, если строка содержит * я хочу стереть первый * и записать ввод

    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;

что я делаю не так?

-2

Решение

Будьте очень осторожны, вам нужно использовать скобки {} контролировать объем, а не табулирование!

Кроме того, используя = в if это назначение, а не проверка, вам нужно использовать ==

Вы повторяете, используя i пока вы удаляете с помощью x?

4

Другие решения

Вы можете упростить это, используя std::find удалить первое вхождение *:

str.erase(std::find(str.begin(), str.end(), '*'));
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector