Rust: как пересобрать строку и добавить экранирование к каждому символу строки?

Как лучше добавить к каждому символу в строке экранирование "\" ? Пройти строку в цикле, получим посимвольное ее, а как добавить к каждому символу "\" и снова собрать все в строку?


Ответы (2 шт):

Автор решения: rotabor

А где-то поискать самому? Первое, что попалось: Создание функции на Rust, которая возвращает String или &str.

Берём оттуда кусок кода и переделываем:

fn total_escaping(input: &str) -> String {
   let mut buf = String::with_capacity(2 * input.len());
   for c in input.chars() {
       buf.push('\');
       buf.push(c);
   }
}

Но я очень подозреваю, что должна быть стандартная функция, которая экранирует все нуждающиеся в этом символы.

Вот, что-то нашёл Function escape_string::escape

→ Ссылка
Автор решения: Dima

Сделал все через цикл и посимвольное чтение. Да и как-то проще все должно быть.

let mut string = String::new();
    for i in hostname.chars() {
        string.push('\\');
        string.push(i);
        
    }

    print!("{}", string);
→ Ссылка