Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / Функции для работы со строками и символами в Си

.docx
Скачиваний:
199
Добавлен:
07.03.2016
Размер:
21.79 Кб
Скачать

Функции для работы со строками и символами в Си

Функция

Пояснение

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()

Соседние файлы в папке ООП