@Heckfy325
Начинающий программист. Простите за глупые вопросы

Как удалить символ из строки?

Есть строка, условно скажем "Кода c++". Нужно удалить букву "а", в слове кода.
Вот моя реализация:
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

//удаление n буквы из строки
string delChar(string st, int n) { // n - номер буквы которую нужно удалить
    for (int i = 0; i < st.size(); i++) {
        if (i == n - 1) {
            // код удаления...
        }
    }
    return st;
}

int main(){

    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "RUSSIAN");

    string tex = "Кода c++";

    // удаляю букву «а» из слова «кода»
    delChar(text, 4);

    return 0;
}


Не могу найти правильное решение для выполнения этой операции. Удаление нужно произвести таким способом, что после удаления строка сместилось в лево. Т.е. что бы не получился такой результат "Код__с++", двойной пробел.
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 3
Gremlin92
@Gremlin92
Ленивый и безъинициативный
Вот получай
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
string delChar(string st, int n) 
{
    string str="";
    for (int i = 0; i < st.size(); i++) 
    {
        if (i != n - 1) 
            str+=st[i];
    }
    return str;
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "RUSSIAN");
    string text = "Hello world!";
    cout<<delChar(text, 5);
    return 0;
}
Ответ написан
@HcNetp
"S.erase(pos) - удаляет из строки S с символа с индексом pos и до конца строки.

S.erase(pos, count) - удаляет из строки S с символа с индексом pos количеством count или до конца строки, если pos + count > S.size()."

Создай новую строку в которую поместишь всё кроме этих n символов иначе.
Ответ написан
@Heckfy325 Автор вопроса
Начинающий программист. Простите за глупые вопросы
Всем спасибо!
Мое решение:
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
string delChar(string st, int n) 
{
    st.erase(n-1,1);
    return st;
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "RUSSIAN");
    string text = "Hello world!";
    cout<<delChar(text, 5);
    return 0;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы