Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1-15.doc
Скачиваний:
12
Добавлен:
12.05.2015
Размер:
159.23 Кб
Скачать

3.2. Функции обработки символов и строк символов

В стандартной библиотеке Cесть следующие группы функций, оперирующих с символами и строками символов:

  • проверка символов и преобразование символов (раздел ctype.h);

  • преобразование строк в числовые данные и обратные преобразования (раздел stdlib.h);

  • операции над строками (раздел string.h);

  • операции над буферными областями (разделы string.hиmem.h).

Для функций определения класса символов, описанных в стандартной библиотеке, в качестве аргумента задаются значения типаint(проверяется только младший байт аргумента). Возвращаемое значение (типаint) равно0, если условие проверки не выполняется и отлично от нуля в противном случае. В разделе библиотекиctype.hопределены следующие функции:

Имя функции

Действие функции

isalnum

Тест на символы A-Z,a-z,0-9.

isalpha

Тест на буквы A-Z,a-z.

iscntrl

Тест на управляющие символы с кодами 0x000x1fи0x7f.

isdigit

Тест на цифры 0-9.

isgraph

Тест на печатаемые символы, исключая пробел – 0x21 -0x7e.

islower

Тест на буквы a-z.

isprint

Тест на печатаемые символы – 0x20-0x7e.

ispunct

Тест на символы – знаки пунктуации.

isspace

Тест на символ пробела.

isupper

Тест на буквы A-Z.

isxdigit

Тест на шестнадцатеричную цифру – 0-9,A-F.

Функция tolower()с аргументом типаintпроверяет, является ли аргумент прописной буквой и, если является, буква переводится в нижний регистр. В противном случае функция возвращает значение аргумента.

Функция toupper()с аргументом типаintпроверяет, является ли аргумент строчной буквой и, если является, буква переводится в верхний регистр. В противном случае функция возвращает значение аргумента.

Числа могут сохраняться как в форме строк, так и в форме цифр. Сохранение числа в виде строки означает сохранение цифровых символов. Например, число 213может быть сохранено в массиве символьной строки в виде цифр '2', '1', '3', '\0'. Сохранение числа213в циф­ровой форме означает сохранение его, например, в ка­честве значения типаint.

В языке Cцифровая форма требуется для выполне­ния таких цифровых операций, как сложение и сравне­ние, но отображение чисел на экране требует представ­ления в форме строки, поскольку на экране отображаются символы. Функцииprintf()иscanf()с помощью своих спецификаций преобра­зуют цифровые формы в строковые и наоборот.

Преобразование строк в числа и чисел в строкивыполняется с помощью следующих функций, объявленных в разделеstdlib.h.

Прототип функции

Действие функции

double atof (char *string)

Возвращает число с плавающей точкой типа doubleили0, если преобразование невозможно.

int atoi (char *string)

Возвращает целое число или 0, если преобразование невозможно.

long atol (char *string)

Возвращает целое число типа longили0, если преобразование невозможно.

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

Преобразует целое число, заданное в аргументе value, в строку символов*stringв системе счисленияradix(2 <radix < 36).

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

Аналогична функции itoa, но для длинных целых чисел.

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

Аналогична функции itoa, но для длинных целых чисел без знака.

Операции над строковыми переменными, определенные в разделеstring.hвключают следующие функции:

Прототип функции

Действие функции

char *strcat (char *string1, char *string2)

Возвращает строку, являющуюся конкатенацией строк string1иstring2.

char *strchr (char *string, int symbol)

Возвращает указатель на первое вхождение symbolвstringилиNULL, еслиsymbolне найден вstring.

int strcmp (char *string1, char *string2)

Возвращает значение, большее 0, еслиstring1>string2, равное0, еслиstring1==string2и меньшее0, еслиstring1<string2.

char *strcpy (char *string1, char *string2)

Копирует string2вstring1и возвращаетstring1.

int strcspn (char *string1, char *string2)

Возвращает длину начальной подстроки string1, не содержащей ни одного символа изstring2.

int strlen (char *string)

Возвращает длину stringв байтах.

char *strncat (char *string1, char *string2, n)

Аналогична функции strcat(), но оперирует сnсимволами строкиstring2.

int strncmp (char *string1, char *string2, n)

Аналогична функции strcmp(), но оперирует с nсимволами строкиstring2.

char *strncpy (char *string1, char *string2, n)

Аналогична strcpy(), но оперирует сnсимволами строкиstring2.

char *strset (char *string, int symbol)

Возвращает строку string, заполненную символамиsymbol.

char *strpbrk (char *string1, char *string2)

Возвращает указатель на первое вхождение любого символа из string2вstring1илиNULL, если нет общих символов.

char *strrchr (char *string, int symbol)

Возвращает указатель на последнее вхождение symbolвstringилиNULL, если нет общих символов.

int strspn (char *string1, char *string2)

Возвращает длину начальной подстроки string1, которая содержит только символы изstring2.

char *strstr (char *string1, char *string2)

Возвращает указатель на первое вхождение строки string2вstring1илиNULL, если вхождение не найдено.

char *strtok (char *string1, char *string2)

При первом вызове функции для заданного значения параметра string1и строкиstring2, содержащей символы-разделители слов дляstring, производится возврат указателя на первый символstring1. Чтобы найти начало следующего слова вstring1, необходимо вызвать функцию со значениемNULLдляstring1. Когда все слова вstring1исчерпаны, возвращаетсяNULL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]