C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Преобразование строки  (Прочитано 1502 раз)
Program87
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 137


Преобразование строки
« : 07 Январь 2013, 13:53:08 »

Доброго времени суток, уважаемые участники форума.

Недавно задался таким вопросом:
Как можно заменить строку символов на такую же строку с другими символами?

То есть есть стандартная строчка:
Код:
AnsiString str = "абвгдежзийклмн";
Нужно каждый символ подменить на другой, используя таблицу:
Код:
а = о
б = з
И так далее.
Можно сделать это через for и switch, проблема в размерах такого кода.
Скажите возможно ли это реализовать другим способом?
Записан
OVE
Участник


Сказали спасибо: +67/-0
Offline

Сообщений: 72


Re: Преобразование строки
« Ответ #1 : 07 Январь 2013, 18:27:12 »

можно объявить массив из 255 элементов типа unsigned char, в который забить новые коды.
unsigned char m[255]={сюда нужно забить 255 значений};
Код:
AnsiString astSource="sdfdf";
AnsiString astDest="";
for(int i=1;iLength();i++)
  astDest=astDest+m[astSource[i]];
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: Преобразование строки
« Ответ #2 : 08 Январь 2013, 01:13:40 »

Цитата: OVE от 07 Январь 2013, 18:27:12
можно объявить массив из 255 элементов типа unsigned char, в который забить новые коды.
unsigned char m[255]={сюда нужно забить 255 значений};
Код:
AnsiString astSource="sdfdf";
AnsiString astDest="";
for(int i=1;iLength();i++)
  astDest=astDest+m[astSource[i]];

Не могёшь ты прибавить чар к стрингу. Получится стринг + инттостр()

А вот заменить чары внутри astSource можно так.
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Преобразование строки
« Ответ #3 : 08 Январь 2013, 10:58:12 »

Код
std::mapchar,char> CharMap;
CharMap['а'] = 'о';
CharMap['б'] = 'з';
// и так далее...
AnsiString str("абвгдежзийклмн");
for(int i=1; istr.Length(); i++) str[i] = CharMap[str[i]];
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.094 секунд. Запросов: 22.