powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C - удаление подстроки
4 сообщений из 4, страница 1 из 1
C - удаление подстроки
    #34303433
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, как используя возможности языка C (не C++) удалить из строки подстроку.
Т. е. что-то типа "AABBCC" преобразовать к виду "AACC" (длина строки произвольная, удаляемая подстрока "BB" заранее известна).

Если не трудно, то приведите пример кода, т. к. я с синтаксисом C практически не знаком :(

Заранее благодарен откликнувшимся.
...
Рейтинг: 0 / 0
C - удаление подстроки
    #34303446
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
memcpy(dst, src, strstr(src, msk)-src);
dst[strstr(src, msk)-src]= 0 ;
strcat(dst, strstr(src, msk)+strlen(msk));

dst - требуемая строка
src - исходная
msk - ту что вырезать.
...
Рейтинг: 0 / 0
C - удаление подстроки
    #34303504
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гигантское спасибо! Помогло!
...
Рейтинг: 0 / 0
C - удаление подстроки
    #34303533
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#include <stdio.h>
#include <string.h>

main() {
	char bigstring[] = "AABBCC";
	char substring[] = "BB";

	char *tmpSubstringFoundAt;
	int tmpSubstringLength;

	tmpSubstringFoundAt = strstr(bigstring, substring);
	tmpSubstringLength = strlen(substring);

	// Следующие три функции делают одно и тоже, можно использовать любую из них,
	// но лучше использвать первую, она следит чтобы не переполнился приемный буфер
	strncpy ( tmpSubstringFoundAt, tmpSubstringFoundAt + tmpSubstringLength,
							 sizeof(bigstring) - (tmpSubstringFoundAt-bigstring));

	strcpy ( tmpSubstringFoundAt, tmpSubstringFoundAt + tmpSubstringLength);
	memmove ( tmpSubstringFoundAt, tmpSubstringFoundAt + tmpSubstringLength, tmpSubstringLength+ 1 );


	printf("%s\n", bigstring);
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / C - удаление подстроки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]