Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Библиотечные функции для работы со строками




С помощью функций стандартной библиотеки языка, которые содержатся в заголовочном файле string.h, реализованы многие часто используемые операции над символьными строками. В большинстве своем в качестве строк они воспринимают указатели. Прежде чем использовать эти указатели в программе, нужно подключить их описания с помощью оператора #include.

Здесь мы будем иметь дело с двумя группами функций. Функции с именами, начинающимися с str, работают с С-строками, в которых нулевой байт означает конец строки. Функции же, начинающиеся с mem, работают с массивами символов, следовательно, позволяют работать и с нулевыми байтами.

Обратите внимание – функции вроде копирования и слияния строк (модифицирующие один из аргументов) изменяют первый аргумент, а не второй. Приведем ряд наиболее употребительных функций для работы со строками (таблица).

 

Прототип функции Краткое описание Примечание
unsigned strlen(const char* s); Вычисляет длину строки s  
int strcmp(const char* s1, const char* s2); Сравнивает строки s1 и s2 Если s1<s2, то результат отрицательный, если s1==s2, то результат равен 0, если s2>s1 – результат положительный
int strcnmp(const char* s1, const char* s2); Сравнивает первые n символов строк s1 и s2 Если s1<s2, то результат отрицательный, если s1==s2, то результат равен 0, если s2>s1 – результат положительный
char* strcpy(char* s1, const char* s2); Копирует символы строки s1 в строку s2  
char* strncpy(char* s1, const char* s2, int n); Копирует n символов строки s1 в строку s2 Конец строки отбрасывается или дополняется пробелами
char* strcat(char* s1, const char* s2); Приписывает строку s2 к строке s1  
char* strncat(char* s1, const char* s2); Приписывает первые n символов строки s2 к строке s1  
char* strdup(const char* s); Выделяет память и переносит в нее копию строки s При выделении памяти используются функции
char *strchr(char *s, int c) Возвращает указатель на первый встреченный в строке символ c. Если такого символа в строке не оказалось, возвращает NULL  

Продолжение табл.

Прототип функции Краткое описание Примечание
void *memcpy(void *dst, void *src, size_t len) Копирует len байтов (включая нулевые) из src в dst. Возвращает dst  
void *memove(void *dst, void *src, size_t len) Делает то же, что и memcpy Это – единственная функция, которая по стандарту обязана правильно копировать перекрывающиеся объекты
int memcmp(void *s1, void *s2, size_t len) Аналог strcmp, но с учетом нулевых байтов  
void *memchr(void *s, int c, size_t len) Аналог strchr, но с учетом нулевых байтов  
void *memset(void *s, int c, size_t len) Заполняет первые len байтов массива s символом c  

 

В следующем примере, использующем приведенные функции, в массиве result будет образована строка «1 января 1998 года, 12 часов».

 

Пример

char result[100];

char* date = «1 января 1998 года»;

char* time = «12 часов»;

strcpy(result, date);

strcat(result, «,»);

strcat(result, time);

 

Как видно из этого примера, литералы можно непосредственно использовать в выражениях.

Определить массив строк можно с помощью следующего объявления:

 

char* StrArray[5]={«one»,«two»,«three»,«four»,«five»};




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 658; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.