Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора по яп 2.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
204 Кб
Скачать
☆

29. Стандартная библиотека языка Си. Функции работы со строками.

Функции работы со строками

char *stpcpy(char *dest, const char *src);

stpcpy копирует строку src в строку dest, останавливаясь при обнаружении символа конца строки. stpcpy возвращает dest + strlen(src).

char *strcat(char *dest, const char *source);

srtcat добавляет копию строки src в конец dest.

Длина результирующей строки равна strlen(destin) + strlen(source).

strcat возвращает указатель на результирующую строку.

char *strchr(const char *s, int c);

strchr просматривает строку в прямом направлении для отыскания в ней заданного символа. strchr ищет первое вхождение символа с в строку s.

Cимвол конца строки считается частью строки, поэтому, например, strchr(strs, 0) вернет значение указателя на нулевой символ строки strs.

strchr возвращает указатель на первое вхождение символа с в s; если c не обнаружен в s, то strchr возвращает нуль.

Int strcmp(const char *s1, const char *s2);

strcmp осуществляет беззнаковое сравнение строк s1 и s2, начиная с первого символа каждой строки, до тех пор, пока очередные символы в строках не будут различны или пока не будут достигнуты концы строк.

strcmp возвращает значение: < 0 если s1 меньше чем s2

== 0 если s1 равна s2

> 0 если s1 больше чем s2

char *strcpy(char *dest, char *src);

strcpy копирует строку src в dest, завершая работу после копирования символа окончания строки. strcpy возвращает dest

size_t strlen(const char *s);

strlen вычисляет длину строки s. strlen возвращает число символов в s, не считая символ конца строки.

char *strstr(const char *s1, const char *s2);

strstr осуществляет поиск в s2 первого вхождения в нее подстроки s1.

strstr возвращает указатель на элемент в строке s2, с которого начинается s2 (указатель на s2 в s1). Если s2 не обнаружена в s1, то strstr возвращает нуль.

size_t strspn(const char *s1, const char *s2);

strspn находит первый сегмент строки s1, который состоит только из символов строки s2.

strspn возвращает длину первого встретившегося сегмента строки s1, состоящего только из символов строки s2.

Функции преобразования строк в числа

Приведенные ниже функции возвращают преобразованное из входной строки число. Если строка не может быть преобразована в число соответствующего типа, функции возвращают 0.

double atof(const char *nptr);

atof преобразует строку, на которую указывает nptr, в double;

Integer atoi(const char *nptr);

atoi преобразует строку, на которую указывает nptr, в integer.

long atol(char *nptr)

atol преобразует строку, на которую указывает nptr, в long.

Функции преобразования целых чисел в строку

В приведенных ниже функциях идет преобразование в заканчивающуюся нулем строку string. Место, выделенное для string, должно быть достаточно большим для того, чтобы поместить возвращаемую строку, включая 0 в конце (\0). Функции возвращают до 33 байт.

radix определяет основание, используемое в превращаемом value. Оно должно быть от 2 до 36 (включительно). Если value отрицательно и radix =10, то первый символ строки - знак минуса (-).

char *itoa(int value, char *string, int radix);

itoa преобразует value (целое) и заносит результат в string.

char *ltoa(long value,char *string, int radix);

ltoa преобразует value (длинное целое) и заносит результат в string.

char *ultoa(unsigned long value, char *string, int radix);

ultoa преобразует value (имеющую тип unsigned long) и сохраняет результат в string.

Функции преобразования дробных чисел в строку

Приведенные ниже функции преобразовывают value в ноль-ограниченную строку из ndigit цифр и возвращают указатель на эту строку. В возвращаемой строке нет десятичной точки и знака. Десятичная точка позиционируется относительно начала строки по значению decpt (отрицательное значение decpt относится к возвращаемым знакам слева).

Если знак результата отрицателен, то значение слова, указываемого sign, является ненулевым, иначе оно равно 0.

char *fcvt(double value, int ndigit, int *decpt, int *sign);

char *ecvt(double value, int ndigit, int *decpt, int *sign);