![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Нужна функция принимающая два аргумента в виде двух строк. Ищет вхождение второй строки в первую и удаляет это вхождение. Требуется, чтобы функция убирала за собой мусор, а не оставляла пробелы вместо удаленных символов.
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Пардон, а что такое "вхождение"? Как это понять?
|
|||
|
||||
| codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
En_t_end в чем пишешь?
|
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
codelord
VS 2003 .NET |
|||
|
||||
| comcon1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Для std::string это будет как-то так:
Хочешь с char* - напиши скрипт. А делается так:
|
||||
|
|||||
| LPBOY |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
comcon1,
Записывать 0 в строке str2[strlen(str2) - strlen(str1)] = '\0'; необязательно, он там уже есть... Это сообщение отредактировал(а) LPBOY - 6.8.2005, 18:30 --------------------
Каждый человек по-своему прав, а по-моему нет... |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Именно. Пример не работает Попробую упростить задачу. Есть строка. Я знаю, что в конце её может быть другая известная мне строка. Но её может и не быть ! Мне нужна функция(или способ узнать) возвращающая начало вхождения этой другой строки, чтобы поставить там нуль-терминатор. В принципе это можно сделать самостоятельно, ну там читать в цикле массив, но это будет слишком прямоугольно Это сообщение отредактировал(а) En_t_end - 6.8.2005, 18:31 |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
2 LPBOY - да. strcpy скопирует вместе с нулем. Действительно.
2 En_t_end Все должно работать. Сейчас проверю у себя и дам тестерный код. |
|||
|
||||
| LPBOY |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Тогда так:
PS пример comcon1 работает. Это сообщение отредактировал(а) LPBOY - 6.8.2005, 18:55 --------------------
Каждый человек по-своему прав, а по-моему нет... |
|||
|
||||
| comcon1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Пример прямо из Vima. Вывод:
------------------- Кстати, чисто С. Это сообщение отредактировал(а) comcon1 - 6.8.2005, 19:01 |
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
comcon1
Извинияюсь, прошелся дебагером. Ошибка была у меня. Да к тому же у тебя текст в коде почему-то в Unicode - IDE ругается А пример действительно хороший - в лучших традициях чистых Сей. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |