mesmer Опубликовано 6 декабря, 2004 Жалоба Поделиться Опубликовано 6 декабря, 2004 Многие наверно когда учились проходили вот такое задание:Преобразовать строку, содержащую выражение на Си с операциями (=,==,!=,a+=,a-=) в строку Паскаль с операциями...так вот. создаю два массива(string).напр., после for в if(c[]=='='&c[i+1]=='=') p[]=p[]+'='; говорят вроде правильно,но надо все в одном массиве...поможет кто? :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Сергей Плоткин Опубликовано 6 декабря, 2004 Жалоба Поделиться Опубликовано 6 декабря, 2004 mesmer Можно поконкретнее и на нормальном русском языке? Тебе нужно Си-строку в паскаль-строку? Тогда почему ты приводишь в примере си-строку и почему это "вроде правильно"? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 декабря, 2004 Жалоба Поделиться Опубликовано 6 декабря, 2004 Сергей Плоткин Как я понял, имеется в виду программа на C, преобразующая строку с выражением, записанным на C, в строку c аналогичным выражением или оператором (теоретически - даже не -ом, а -ами, не знаю, требуется ли это) на Pascal. Причем программа должна использовать для работы только один массив, преобразуя строку прямо в нем (??). Это мазохизм, по-моему... Ссылка на комментарий Поделиться на другие сайты Поделиться
aTeos Опубликовано 6 декабря, 2004 Жалоба Поделиться Опубликовано 6 декабря, 2004 Тролль Причем программа должна использовать для работы только один массив, преобразуя строку прямо в нем (??). Это мазохизм, по-моему... Как ни странно, нас так и учили :D void main(){ char c[80]; // строка cin >> c; int len; // длина строки for (len = 0; c[len] != 0; len++); for (int i = 0; i < len; i++) { // != заменяем на <> if (c[i] == '!' && c[i+1] == '=') { c[i] = '<'; c[i+1] = '>'; continue; } // == заменяем на = if (c[i] == '=' && c[i+1] == '=') { // "Сдвигаем" массив for (int j = i; j < len-1; j++) c[j] = c[j+1]; c[--len] = 0; continue; } // = заменяем на := if (c[i] == '=') { // "Раздвигаем" массив len++; for (int j = len; j > i; j--) c[j] = c[j-1]; c[i] = ':'; c[i+1] = '='; i++; continue; } } cout << c << endl; getch();} Писал сам, поэтому, если есть хоть какие, хоть самые мелкие замечания, Я ХОЧУ ОБ ЭТОМ ЗНАТЬ. Просьба такая :) Добавлено : [mergetime]1102345877[/mergetime] Мда... с таким форматированием, как сдесь, понять ничего не получится. Пробелы и tab'ы заменились на что-то странное Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 6 декабря, 2004 Жалоба Поделиться Опубликовано 6 декабря, 2004 aTeos Как ни странно, нас так и учили А чем это мотивировалось? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения