Другие языки программирования и технологии

C++ ,очень нужна помощь ...

Пусть есть строка . Напишите программу , удваивающую в ней встречаемые сочетания "ЧЕМ " . помогите кто чем может ) ...хоть подскажите идею как реальизовать программу , прошу без глупых и односложных ответов ...
Именно C++? Потоки? STL?
Тогда -- в цикле, пока в строке есть сочетание "ЧЕМ " -- ищешь старт этого сочетания, заменяешь на "ЧЕМ ЧЕМ ", передвигаешь начало поиска _за_ эти символы, выполняешь весь цикл заново.

Код сходу не напишу -- работал с C++ лет 8 назад, но если ты в нем более менее разбираешься, то проблем не будет.
Особо обрати внимание на методы string::find и string::replace
Андрей Жуков
Андрей Жуков
10 997
Лучший ответ
Серёга Зарипов да , C++ .знаю что задача довольно легкая , просто в C++ я профан ...спасибо за помощь
пару идей можно

1. разобрать строку на куски используя "чем" как знак разрыва и собрать строку обратно вставляя меж кусков "чем" дважды.

2. искать индекс (позицию) "чем" в строке и создавать новую строку как
(кусок от начала строки до "чем") + "чем" + (кусок от индекса "чем" до конца строки) ; следующий индекс искать в куске от хвоста найденного "чем" до конца фразы.. .

короче.. . полный пустяк.. .

тока я такими пустяками лишь на джаве занимался.. .
хотя, какая разница...
Vusal Aliev
Vusal Aliev
81 152
Серёга Зарипов не спорю что пустяк , только я в C++ полный 0 , как и в любом другом языке программирования ((
в Си строка может адресоваться как одномерный массив символов. Бежишь по заданной стрке увеличивая указатель от 1 до N (нулевой член строки хранит длину строки) и копируешь по три символа в другую строковую переменную (начиная с i-го) . Если скопированные три символа не равны заданной комбинации, то в строку результата прибавляешь значение i-го символа, а указатель увеличиваешь на один. Если скопированные три символа равны заданной комбинации, то в строку результата два раза добавляешь свою заданную комбинацию а значение указателя увеличиваешь на три. и так до конца исходной строки.