| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Строковые переменные |
| Автор: sembler 6.11.2005, 21:10 |
| Мои познания синтаксиса с++ крайне малы, а в плане строковых переменных вообще равны нулю. Столкнулся с проблемой, необходимо написать программу перекодировки математической записи выражения (11*21/31+41) в обратную польскую (11 21 * 31 / 41 +). Алгоритм несложный. Проблема заключается в том, что я не умею работать с символами. Как можно считать набор цифр и соеденить их в одно число. Короче мне надо разделить исходное выражение в массив, где по очереди находились бы скобки, операторы и операнды. Пример: входные данные: 21*(24+6)/5 исходные: массив [0] = 21 [1] = * [2] = ( [3] = 24 [4] = + [5] = 6 [6] = ) [7] = / [8] = 5 Желательно работающей прогой, чтобы я видел пример работающий со строками. ps извините если мой вопрос rtfm... Просто я и без с++ отлично смогу прожить, а вот задачку решить надо. |
| Автор: Void 6.11.2005, 21:41 | ||
Операнды и операторы складываются в различные массивы, потому что имеют разные типы, а преобразовывать int обратно в строку я не стал. Я прекрасно понимаю, что для новичка в C++ такой код выглядит... э-э... не очень понятно, но пока ничего больше в голову не лезет Синтаксис работы со строками в C++, если использовать std::string, мало чем отличается от других языков, так что скажите поточнее, что вам непонятно. |
| Автор: sembler 6.11.2005, 22:16 |
| Я не упомянул, что программу надо писать на turbo c++, а то у меня нет библиотек iostream, sstream... дело в том, что я только мельком просмотрел синтаксис с++ и там строки были реализованы как массивы символов. |
| Автор: sembler 7.11.2005, 10:38 |
| А как узнать номер ascii символа (Только не через print_f)? |
| Автор: Exekutor 7.11.2005, 10:42 |
| Номер узнать просто - функцией int(char ch); Добавлено @ 10:45 а вообще используй структуры. Читаешь строку ввода в строку и разбиваешь ее по структурам. |
| Автор: sembler 24.11.2005, 22:41 |
| Люди, хельп ми плиз! |
| Автор: Neitron 25.11.2005, 11:00 | ||||
Нет такой ф-ции int(char) Это называется преобразование типа. Небезопасное.
Это библиотеки стандарта самого языка С++ Поэтому у тебя должны быть эти библиотеки, а если нет, то у тебя урезанная дрянная версия неполного С++. |