
ООП / Функции для работы со строками и символами в Си
.docx
Функции для работы со строками и символами в Си |
|
Функция |
Пояснение |
strlen(имя_строки) |
определяет длину указанной строки, без учёта нуль-символа |
Копирование строк |
|
strcpy(s1,s2) |
выполняет побайтное копирование символов из строки s2 в строку s1 |
strncpy(s1,s2, n) |
выполняет побайтное копирование n символов из строки s2 в строку s1. возвращает значения s1 |
Конкатенация строк |
|
strcat(s1,s2) |
объединяет строку s2 со строкой s1. Результат сохраняется в s1 |
strncat(s1,s2,n) |
объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1 |
Сравнение строк |
|
strcmp(s1,s2) |
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 С учётом регистра |
strncmp(s1,s2) |
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 С учётом регистра |
stricmp(s1,s2) |
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 Без учёта регистра |
strnicmp(s1,s2) |
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 Без учёта регистра |
Обработка символов |
|
isalnum(c) |
возвращает значение true, если с является буквой или цифрой, и false в других случаях |
isalpha(c) |
возвращает значение true, если с является буквой, и false в других случаях |
isdigit(c) |
возвращает значение true, если с является цифрой, и false в других случаях |
islower(c) |
возвращает значение true, если с является буквой нижнего регистра, и false в других случаях |
isupper(c) |
возвращает значение true, если с является буквой верхнего регистра, и false в других случаях |
isspace(c) |
возвращает значение true, если с является пробелом, и false в других случаях |
toupper(c) |
если символ с, является символом нижнего регистра, то функция возвращает преобразованный символ с в верхнем регистре, иначе символ возвращается без изменений. |
Функции поиска |
|
strchr(s,c) |
поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с. Если символ не найден, то возвращается ноль. |
strcspn(s1,s2) |
определяет длину начального сегмента строки s1, содержащего те символы, которые не входят в строку s2 |
strspn(s1,s2) |
возвращает длину начального сегмента строки s1, содержащего только те символы, которые входят в строку s2 |
strprbk(s1,s2) |
Возвращает указатель первого вхождения любого символа строки s2 в строке s1 |
Функции преобразования |
|
atof(s1) |
преобразует строку s1 в тип double |
atoi(s1) |
преобразует строку s1 в тип int |
atol(s1) |
преобразует строку s1 в тип long int |
Функции стандартной библиотеки ввода/вывода <stdio> |
|
getchar(с) |
считывает символ с со стандартного потока ввода, возвращает символ в формате int |
gets(s) |
считывает поток символов со стандартного устройства ввода в строку s до тех пор, пока не будет нажата клавиша ENTER |
Функции для работы со строками — файлы string.h, stdlib.h
Имя Функции |
Прототип и краткое описание |
atof |
double atof(char *str) ; Преобразует строку str в вещественное число типа double |
atoi |
int atoi(char *str) ; Преобразует строку str в десятичное целое число |
atol |
long atol(char *str) ; Преобразует строку str в длинное десятичное целое число |
itoa |
char *itoa(int v, char *str, int baz) ; Преобразует целое v в строку str. При изображении числа используется основание baz (от 2 до 36). Для отрицательного числа и baz = 10 первый символ — минус(-) |
ltoa |
char *ltoa(long v, char *str, int baz); Преобразует длинное целое v в строку str . При изображении числа используется основание baz (от 2 до 36) |
strcat |
char * strcat(char *sp, char *si); Приписывает строку si к строке sp (конкатенация строк) |
strchr |
char *strchr(char *str, int c) ; Ищет в строке str первое вхождение символа с |
strcmp |
int strcmp(char *str1 , char *str2) ; Сравнивает строки str1 и str2 . Результат отрицателен, если strl меньше str2; равен нулю, если str1 равно str2 и положителен, если str1 больше str2 (сравнение беззнаковое) |
strcpy |
char *strcpy(char *sp, char *si) ; Копирует байты строки si в строку sp |
strcspn |
int strcspn(char *str1, char *str2) ; Определяет длину первого сегмента строки str1, содержащего символы, не входящие во множество символов строки str2 |
strdup |
char *strdup(const char *str); Выделяет память и переносит в нее копию строки str |
strlen |
unsigned strlen(char *str); Вычисляет длину строки str |
strlwr |
char *strlwr(char *str); Преобразует буквы верхнего регистра в строке в соответствующие буквы нижнего регистра |
strncat |
char *strncat(char *sp, char *si, int kol); Приписывает kol символов строки si к строке sp |
strncmp |
int strncmp(char *str1, char *str2, int kol); Сравнивает части строк str1 и str2, причем рассматриваются первые kol символов. Результат отрицателен, если str1 меньше str2; равен нулю, если str1 равен str2, и положителен, если str1 больше str2 |
strncpy |
char *strncpy(char *sp, char *si, int kol); Колирует kol символов строки si в строку sp («хвост» отбрасывается или дополняется пробелами) |
strnicmp |
char *strnicmp(char *str1, char *str2, int kol); Сравнивает не более kol символов строки str1 и строки str2, не делая различия регистров |
strnset |
char *strnset(char *str, int с, int kol); Заменяет первые kol символов строки str символом с |
strpbrk |
char *strpbrk(char *str1, char *str2); Ищет в строке str1 первое появление любого из множества символов, входящих в строку str2 |
strrchr |
char *strrchr(char *str, int с); Ищет в строке str последнее вхождение символа с |
strset |
int strset(char *str, int с); Заполняет строку str символом с |
strspn |
int strspn(char *str1, char *str2); Определяет длину первого сегмента строки str1, содержащего только символы, из множества символов строки str2 |
strstr |
char *strstr(const char *str1, const char *str2); Ищет в строке str1 подстроки str2. Возвращает указатель на тот элемент в строке str1, с которого начинается подстрока str2 |
strtod |
double *strtod(const char *str,char **endptr); Преобразует символьную строку str в число двойной точности. Если endpt нe равен null , то *endptr возвращает как указатель на символ, при достижении которого прекращено чтение строки str |
strtok |
char *strtok(char *str1, const char *str2); Ищет в строке str1 лексемы, выделенные символами из второй строки |
strtol |
long *strtol(const char *str ,char **endptr,intbaz); Преобразует символьную строку str к значению «длинное число» с основанием baz(от 2 до 36). Если endptr не равен null, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str |
strupr |
char *strupr(char *str) Преобразует буквы нижнего регистра в строке в соответствующие буквы верхнего регистра |
ultoa |
char *ultoa(unsigned long v, char *str, int baz); Преобразует беззнаковое длинное целое v в строку str |
calloc |
void *calloc(unsigned n, unsigned m) ; Возвращает указатель на начало области динамически распределенной памяти для размещения n элементов по m байт каждый. При неудачном завершении возвращает значение null |
coreleft |
unsigned coreleft(void); — для моделей памяти tiny, small, medium. unsigned long coreleft(void); — для других моделей памяти. Возвращает значение объема неиспользованной памяти, функция, уникальная для DOS, где приняты упомянутые модели памяти |
free |
void free (void *bl); Освобождает ранее выделенный блок динамически распределенной памяти с адресом первого байта bl |
malloc |
void *malloc(unsigned s); Возвращает указатель на блок 0 динамически распределенной памяти длиной s байт. При неудачном завершении возвращает значение null |
realloc |
void *realloc(void *bl, unsigned ns); Изменяет размер ранее выделенной динамической памяти с адресом bl до размера ns байт. Если bl равен null, то функция выполняется как malloc() |