Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Работа с областями памяти и строками
В стандартной библиотеке есть специальная группа Функций для обработки областей памяти, которые рассматриваются как последовательности байтов.
Если размер области, с которой необходимо работать, задается явно, будем называть такую область буфером.
Другое используемое понятие — строка. Отличие строки от буфера в том, что ее размер задается не явно, а определяется первым встретившимся при просмотре строки слева направо нулевым байтом (имеющим значение '\0'), причем считается, что этот нулевой байт также принадлежит строке.
Для копирования буферов, для присваивания каждому байту в пределах указанного буфера заданного значения и для сравнения содержимого двух буферов предназначены следующие функции:
Функция
| Краткое описание
| memccpy
| копирует символы из одного буфера в другой до тех пор, пока не будет скопирован заданный символ или не будет скопировано определенное число символов
| memchr
| возвращает указатель на первое вхождение заданного символа в буфере
| memcmp
| сравнивает указанное число символов из двух буферов
| memlcmp
| сравнивает указанное число символов двух буферов, считая строчные и прописные буквы эквивалентными
| memcpy
| копирует указанное количество символов из одного буфера в другой
| memset
| инициализирует заданным значением указанное количество байтов в буфере
| movedata
| копирует определенное количество символов из одного буфера в другой, даже когда буфера находятся в разных сегментах
|
Прототипы перечисленных функций содержатся в файле memory.h (MSC) и в файлах mem.h и string.h (ТС).
Система программирования ТС предоставляет дополнительно следующие функции для работы с буферами:
Функция
| Краткое описание
| memove
| копирует указанное количество символов из одного буфера в другой
| movmem
| копирует указанное количество символов из одного буфера в другой
| setmem
| инициализирует заданным значением указанное количество байтов в буфере
|
Прототипы функций memmove и movmem содержатся в файлах mem.h и string.h. Прототип функции setmem содержится в файле mem.h.
Для работы со строками существуют следующие библиотечные функции (ТС & MSC):
Функция
| Краткое описание
| strcat
| катенация (склеивание) строк
| strchr
| найти первое вхождение заданного символа в строке
| strcmp
| сравнить две строки
| strcpy
| копировать одну строку в другую
| strcspn
| найти первое вхождение символа из заданного набора символов в строке
| strdup
| дублирование строки
| strerror
| сформировать в строке сообщение об ошибке, состоящее из двух частей: системной диагностики и необязательного добавочного пользовательского сообщения
| stricmp
| сравнить две строки, считая символы нижнего и верхнего регистров эквивалентными
| strlen
| вычислить длину строки
| strlwr
| преобразовать строку в нижний регистр (строчные буквы)
| strncat
| добавить n символов в строку
| strncmp
| сравнение n символов в двух строках
| strncpy
| скопировать n символов из одной строки в другую
| strnicmp
| сравнение n символов двух строк
| strnset
| установить n символов в строке в заданное значение
| strpbrk
| найти первое вхождение любого символа из заданного набора в строке
| strrchr
| найти последнее вхождение заданного символа в строке
| strrev
| инвертировать (перевернуть) строку
| strset
| установить все символы строки в заданное значение
| strspn
| найти первую подстроку из заданного набора символов в строке
| strstr
| найти первую подстановку одной строки (более короткой) в другой
| strtok
| найти следующую точку в строке
| strupr
| преобразовать строку в верхний регистр (заглавные буквы)
|
Кроме того, система программирования MSC предоставляет дополнительно функцию strcmpi (идентична функции stricmp), а система программирования ТС предоставляет функцию stpcpy (идентична функции strcpy, но возвращает в точку вызова другое значение).
Прототипы всех функций работы со строками содержатся в файле string.h. Все функции работают со строками, завершающимися нулевым байтом ('\0'). Для работы с массивом символов, не имеющим в конце нулевого байта, вы можете использовать функции преобразования буферов, описанные выше.
|