Функция C ++, преобразованная в функцию C # - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть эта функция C ++, которую я хочу преобразовать в C #.

// replace all occurences of a string with another string
void replace_all(string& s, const string& from, const string& to) {
    if(!from.empty()) {
        for(size_t pos = 0; (pos = s.find(from, pos) + 1); pos += to.size()) {
            s.replace(--pos, from.size(), to);
        }
    }
}

Как указано в комментарии, она заменяет все вхождения строки другой строкой в ​​данной строке.

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

Мне известно о Regexи я прочитал несколько тем, но не мог понять этого.

1 Ответ

0 голосов
/ 30 сентября 2018

Если это функция, работающая с небольшой строкой, вы можете сделать что-то вроде этого:

    const string s = "Write code in .Net.";
    Console.WriteLine(s);

    // We must assign the result to a variable.
    // ... Every instance is replaced.
    string v = s.Replace("Net", "Basket");
    Console.WriteLine(v);

Если вы хотите работать с той же строкой, как в C ++, используйте StringBuilder:

    const string s = "This is an example.";

    // Create new StringBuilder from string.
    StringBuilder b = new StringBuilder(s);
    Console.WriteLine(b);

    // Replace the first word.
    // ... The result doesn't need assignment.
    b.Replace("This", "Here");
    Console.WriteLine(b);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...