Вот что у меня есть:
string stripSymbols(string str) {
int stringSize = strlen(str.c_str());
for (int i = 0; i < stringSize; i++)
if (str[i] == 0x46)
str[i] = 0x32;
return str;
}
Я знаю, что коды ascii, вероятно, неверны.Это часть проблемы.Но как только я это выяснил, я подумал, что мог бы поставить здесь переключатель для каждого символа, который заменил бы каждый символ пустым пробелом.
Или еще лучше, у меня мог бы быть цикл for в моем forцикл, который проходит по цепочке символов и заменяет все, которые совпадают с вводом пользователя, пустым пробелом.
У меня есть пара идей, но мне было интересно, есть ли более эффективный способ сделать это.
Обновление 1:
Этот код выглядит немного лучше и работает:
string stripSymbols(string str) {
int stringSize = str.size();
for (int i = 0; i < stringSize; i++)
if (str[i] == '.')
str[i] = ' ';
return str;
}
Но ответы предлагают более эффективное решение.
Обновление 2:
Решение, основанное на ответе Kerrek SB:
char symbols [] = {'!', '?', ',', '\'', '.'};
int symbols_size = sizeof(symbols) / sizeof(char);
for (int j = 0; j < symbols_size; j++)
replace(str.begin(), str.end(), symbols[j], ' ');