C. Бочков - Язык программирования Си для персонального компьютера
- Название:Язык программирования Си для персонального компьютера
- Автор:
- Жанр:
- Издательство:СП Диалог, Радио и связь
- Год:1990
- ISBN:5-256-00974-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
C. Бочков - Язык программирования Си для персонального компьютера краткое содержание
Книга содержит полное описание наиболее распространенных реализаций языка программирования Си на 16-разрядных микроЭВМ, совместимых с IBM PC. Приведено описание стандартных библиотек языка.
Для слушателей учебных курсов в области программирования, разработчиков программного обеспечения, а также студентов соответствующих специальностей вузов. Может быть использовано как техническая документация и справочное пособие для широкого круга программистов, как профессионалов, имеющих большой опыт работы на языке Си, так и начинающих программировать на Си.
Язык программирования Си для персонального компьютера - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Работа с областями памяти и строками
В стандартной библиотеке есть специальная группа Функций для обработки областей памяти, которые рассматриваются как последовательности байтов.
Если размер области, с которой необходимо работать, задается явно, будем называть такую область буфером.
Другое используемое понятие — строка. Отличие строки от буфера в том, что ее размер задается не явно, а определяется первым встретившимся при просмотре строки слева направо нулевым байтом (имеющим значение '\0'), причем считается, что этот нулевой байт также принадлежит строке.
Для копирования буферов, для присваивания каждому байту в пределах указанного буфера заданного значения и для сравнения содержимого двух буферов предназначены следующие функции:
| Функция | Краткое описание |
| memccpy | копирует символы из одного буфера в другой до тех пор, пока не будет скопирован заданный символ или не будет скопировано определенное число символов |
| memchr | возвращает указатель на первое вхождение заданного символа в буфере |
| memcmp | сравнивает указанное число символов из двух буферов |
| memlcmp | сравнивает указанное число символов двух буферов, считая строчные и прописные буквы эквивалентными |
| memcpy | копирует указанное количество символов из одного буфера в другой |
| memset | инициализирует заданным значением указанное количество байтов в буфере |
| movedata | копирует определенное количество символов из одного буфера в другой, даже когда буфера находятся в разных сегментах |
Прототипы перечисленных функций содержатся в файле memory.h (MSC) и в файлах mem.h и string.h (ТС).
Система программирования ТС предоставляет дополнительно следующие функции для работы с буферами:
| Функция | Краткое описание |
| memove | копирует указанное количество символов из одного буфера в другой |
| movmem | копирует указанное количество символов из одного буфера в другой |
| setmem | инициализирует заданным значением указанное количество байтов в буфере |
Прототипы функций memmove и movmem содержатся в файлах mem.h и string.h. Прототип функции setmem содержится в файле mem.h.
Для работы со строками существуют следующие библиотечные функции (ТС & MSC):
| Функция | Краткое описание |
| strcat | катенация (склеивание) строк |
| strchr | найти первое вхождение заданного символа в строке |
| strcmp | сравнить две строки |
| strcpy | копировать одну строку в другую |
| strcspn | найти первое вхождение символа из заданного набора символов в строке |
| strdup | дублирование строки |
| strerror | сформировать в строке сообщение об ошибке, состоящее из двух частей: системной диагностики и необязательного добавочного пользовательского сообщения |
| stricmp | сравнить две строки, считая символы нижнего и верхнего регистров эквивалентными |
| strlen | вычислить длину строки |
| strlwr | преобразовать строку в нижний регистр (строчные буквы) |
| strncat | добавить n символов в строку |
| strncmp | сравнение n символов в двух строках |
| strncpy | скопировать n символов из одной строки в другую |
| strnicmp | сравнение n символов двух строк |
| strnset | установить n символов в строке в заданное значение |
| strpbrk | найти первое вхождение любого символа из заданного набора в строке |
| strrchr | найти последнее вхождение заданного символа в строке |
| strrev | инвертировать (перевернуть) строку |
| strset | установить все символы строки в заданное значение |
| strspn | найти первую подстроку из заданного набора символов в строке |
| strstr | найти первую подстановку одной строки (более короткой) в другой |
| strtok | найти следующую точку в строке |
| strupr | преобразовать строку в верхний регистр (заглавные буквы) |
Кроме того, система программирования MSC предоставляет дополнительно функцию strcmpi (идентична функции stricmp), а система программирования ТС предоставляет функцию stpcpy (идентична функции strcpy, но возвращает в точку вызова другое значение).
Прототипы всех функций работы со строками содержатся в файле string.h. Все функции работают со строками, завершающимися нулевым байтом ('\0'). Для работы с массивом символов, не имеющим в конце нулевого байта, вы можете использовать функции преобразования буферов, описанные выше.
Определение класса символов и преобразование символов
| Функция | Краткое описание |
| isalnum | проверка на букву или цифру |
| isalpha | проверка на букву |
| isascii | проверка на символ из набора кодировки ASCII |
| iscntrl | проверка на управляющий символ |
| isdigit | проверка на десятичную цифру |
| isgraph | проверка на печатный символ, исключая пробел |
| islower | проверка на малую букву |
| isprint | проверка на печатный символ |
| ispunct | проверка на знак пунктуации |
| isspace | проверка на пробельный символ |
| isupper | проверка на заглавную букву |
| isxdigit | проверка на шестнадцатеричную цифру |
| toascii | преобразование символа в код ASCII |
| tolower | проверка и преобразование в малую букву, если заглавная буква |
| toupper | проверка и преобразование малой буквы в заглавную |
| _tolower | преобразование буквы в малую (без проверки) |
| _toupper | преобразование буквы в заглавную (без проверки) |
Все эти функции реализованы как макроопределения, заданные в файле ctype.h
Форматные преобразования данных
| Функция | Краткое описание |
| atof | преобразование строки, в представляемое ей число типа float |
| atoi | преобразование строки в число типа int (целое) |
| atol | преобразование строки в число типа long (длинное целое) |
| ecvt | преобразование числа типа double в строку |
| fcvt | преобразование числа типа double в строку |
| gcvt | преобразование числа типа double в строку |
| itoa | преобразование числа типа int в строку |
| ltoa | преобразование числа типа long в строку |
| ultoa | преобразование числа типа unsigned long в строку |
Система программирования ТС предоставляет также следующие функции:
| Функция | Краткое описание |
| strtod | преобразование строки в число типа double (покрывает возможности atof) |
| strtol | преобразование строки в число типа long (покрывает возможности atol) |
| strtoul | преобразование строки в число типа unsigned long |
Прототипы всех перечисленных функций содержатся в файле stdlib.h. Прототип функции atof содержится, кроме того, в файле math.h.
Читать дальшеИнтервал:
Закладка: