Работа со строками
| Заголовочные файлы: | lstring.h или itcgi.h |
| Библиотеки: | lstring.o или itcgi.a |
Важно начать изучение нашей библиотеки именно с этого раздела.
Потому что преобладающее большинство функций используют
псевдокласс LString для передачи параметров.
LString обеспечивает динамическое хранение строк в памяти -
увеличение и уменьшение буффера строки происходит автоматически.
Любая строка создаётся вызовом CreateString()
Завершение работы со строкой DeleteString()
Хороший тон программирования обязывает освободить память после завершения работы
со строкой.
Сам тип LString объявлен так:
typedef char* LString;
То есть является указателем на указатель, хранящий строку.
Переменную типа LString* легко преобразовать к типу char*
просто применив к ней операцию разъименования '*'.
Вернуться к списку разделов
- LString* CreateString(void);
- void DeleteString(LString* s);
- void LString_Format(LString* p, const char* fmt, ...);
- void LString_Replace(LString* p, const char s1[], const char s2[]);
- void LString_ReplaceOne(LString* p, int start, const char s1[], const char s2[]);
- int LString_Find(const LString* p, const char s[], int index);
- void LString_Insert(LString* p, int index, const char s[]);
- void LString_SetAt(LString* p, int index, char c);
- char LString_GetAt(const LString* p,int index);
- void LString_SetString(LString* p, const char s[]);
- void LString_AddString(LString* p, const char s[]);
- char* LString_GetString(const LString* p);
- int LString_GetLength(const LString* p);
- int LString_MidStartCount(const LString* p, int start, int count, LString* value);
- int LString_MidStartEnd(const LString* p, int start, int end, LString* value);
LString* CreateString(void);
Параметры:
нет
Описание
Возвращает указатель на объект LString, то есть char**
void DeleteString(LString* s);
Параметры:
Указатель на объект LString.
Описание
Удаляет объект LString освобождая память.
void LString_Format(LString* p, const char* fmt, ...);
Параметры:
- p - указатель на строку в которую будет осуществляться форматированный вывод;
- fmt - строка символов содержащая и символы формата;
- ... - прочие параметры - их число должно соответствовать количеству спецификаторов в fmt
(как в printf).
Описание
Очень мощная функция, позволяющая создавать форматированную строку по шаблону fmt.
void LString_Replace(LString* p, const char s1[], const char s2[]);
Параметры:
- p - указатель на строку в которой будет производиться замена;
- s1 - строка которую надо заменять;
- s2 - строка на которую осуществляется замена.
Описание
Функция ищет все вхождения строки s1 в объекте LString и заменяет их на s2.
Процесс происходит не рекурсивно - p просматривается последовательно.
void LString_ReplaceOne(LString* p, int start, const char s1[], const char s2[]);
Параметры:
- p - указатель на строку в которой будет производиться замена;
- s1 - строка которую надо заменять;
- s2 - строка на которую осуществляется замена.
Описание
Функция ищет первое вхождения строки s1 в объекте LString и заменяет её на s2.
Процесс происходит не рекурсивно - p просматривается последовательно. В отличие от
LString_Replace() осуществляется замена только первой найденой строки.
int LString_Find(const LString* p, const char s[], int index);
Параметры:
- p - указатель на строку в которой будет производиться поиск;
- index - позиция (от 0) с которой будет просматриваться строка;
- s - подстрока, которую надо найти.
Описание
Возвращает индекс символа начала подстроки. Или (-1) в случае отсутствия таковой.
void LString_Insert(LString* p, int index, const char s[]);
Параметры:
- p - указатель на строку в которую будет производиться вставка;
- index - позиция (от 0) с которой будет раздвинута строка и вставлена подстрока;
- s - подстрока, которую надо вставить.
Описание
Вставляет подстроку в строку в нужной позиции.
void LString_SetAt(LString* p, int index, char c);
Параметры:
- p - указатель на строку в которой будет производиться замена символа;
- index - индекс символа который надо заменить;
- c - символ на который производится замена.
Описание
Функция производит замену символа в строке p по позиции index на символ c.
Действует примерно так: (*p)[index]=c;
char LString_GetAt(const LString* p,int index);
Параметры:
- p - указатель на строку из которой требуется получить символ;
- index - индекс символа который надо заменить;
Описание
Функция производит получение символа в строке p по позиции index.
Действует примерно так: return (*p)[index];
void LString_SetString(LString* p, const char s[]);
Параметры:
- p - строка значение которой необходимо установить;
- s - строка, которую надо запихнуть в p.
Описание
Эта функция является переходником заганяющим строку char* в LString.
При необходимости память выделяется автоматически.
void LString_AddString(LString* p, const char s[]);
Параметры:
- p - строка к которой будет осуществляться присоединение;
- s - строка, которая будет добавляться.
Описание
Дописывает к строке p строку s (как и strcat() для строк).
char* LString_GetString(const LString* p);
Параметры:
Параметром является строка LString которую надо преобразовать к char*.
Описание
Возвращает содержимое строки. Выполняется код вроде: return *p;
int LString_GetLength(const LString* p);
Параметры:
Параметром является строка LString размер которой надо получить.
Описание
Возвращает размер строки в символах. Выполняется код вроде: return strlen(*p);
int LString_MidStartCount(const LString* p, int start, int count, LString* value);
Параметры:
- p - указатель на строку из которой надо получить подстроку;
- start - стартовый индекс;
- count - количество символов, которые надо извлечь;
- value - указатель на строкув которую надо положить результат.
Описание
Получает подстроку из строки.
int LString_MidStartEnd(const LString* p, int start, int end, LString* value);
Параметры:
- p - указатель на строку из которой надо получить подстроку;
- start - стартовый индекс;
- end - конечный индекс (символ в позиции end в строку не включается);
- value - указатель на строкув которую надо положить результат.
Описание
Получает подстроку из строки.
[an error occurred while processing this directive]