Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ Программирование и основы алгоритмизации...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.5 Mб
Скачать

Стандартная библиотека функций языка с

Функции и макросы проверки и преобразования символов находятся в файле ctype.h. Приведем некоторые из них.

int isalnum(int c); -дает значение не нуль, если c – код буквы или цифры (A..Z, a..z, 0..9), и нуль - в противном случае.

int isalpha(int c); - дает значение не нуль, если c – код буквы (A..Z, a..z), и нуль – в противном случае.

int isdigit(int c); - дает значение не нуль, если c – цифра (0..9) в коде ASCII, и нуль – в противном случае.

Функции для работы со строками находятся в файлах string.h, stdlib.h. Приведем некоторые из них.

unsigned strlen(const char* str); - вычисляет длину строки str – количество символов, предшествующих ’\0’.

int strcmp(const char* str1, const char* str2); - сравнивает строки str1 и str2. Результат отрицателен, если str1<str2; равен нулю, если str1==str2, и положителен, если str1>str2 (сравнение беззнаковое).

char* strcpy(char* sp, const char* si); - копирует байты строки si в строку sp.

char* strcat(char* sp, const char* si); - приписывает строку si к строке sp (конкатенация строк).

char* strtok(char* str1, const char* str2); - ищет в строке str1 лексемы, выделенные символами из второй строки.

double atof(const char* str); - преобразует строку str в вещественное число типа double.

int atoi(const char* str); - преобразует строку str в целое число типа int.

long atol(const char* str); - преобразует строку str в целое число типа long.

char* itoa(int v, char* str, int baz); - преобразует целое v в строку str. При изображении числа используется основание baz (2 ≤ baz ≤ 36). Для отрицательного числа и baz=10 первый символ “минус” (-).

char* ltoa(long v, char* str, int baz); - преобразует длинное целое v в строку str. При изображении числа используется основание baz (2 ≤ baz ≤ 36).

char* ultoa(unsigned long v, char* str, int baz); - преобразует беззнаковое длинное целое v в строку str.

double strtod(const char* str, char** endptr); - преобразует символьную строку str в число двойной точности. Если endptr не равен NULL, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str.

long strtol(const char* str, char** endptr, int baz); - преобразует символьную строку str к значению “длинное число” с основанием baz (2 ≤ baz ≤ 36). Если endptr не равен NULL, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str.

Пример использования функции strtok():

char str[]=”Это предложение содержит пять лексем”;

char* p;

p=strtok(str,” “);

while(p!=0)

{ cout<<p<<endl;

p=strtok(str,” “);

}

Результат:

Это

предложение

содержит

пять

лексем

Примечание. При каждом вызове функции возвращается указатель на текущую лексему.

Файлы Потоковый ввод-вывод в языке с Функции верхнего уровня файлового ввода-вывода

При чтении из файла (ввод данных в программу с диска) данные помещаются в буфер (динамически выделяемый участок памяти), а затем побайтно или определенными порциями передаются программе. При опустошении буфера в него передается следующая порция данных.

При выводе данных из ОП в файл они накапливаются в буфере, а при его заполнении записываются в виде блока на диск за одно обращение к диску.

Пересылки между буферами ввода-вывода и программой происходят быстрее, чем обмен данными программы с диском.

Файл вместе со средствами буферизации называют потоком.

Обмен данными программы с файлами на уровне потока поддерживают функции библиотеки ввода-вывода (файл stdio.h). Они могут:

1)открывать и закрывать потоки (связывать указатели на потоки с конкретными файлами);

2)вводить и выводить: символ, строку, форматированные данные, порцию данных определенной длины;

3)анализировать ошибки потокового ввода-вывода и условие достижения конца потока (конца файла);

4)управлять буферизацией потока и размером буфера;

5)получать и устанавливать указатель (индикатор) текущей позиции в потоке (файле).