Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции программирование.doc
Скачиваний:
37
Добавлен:
05.11.2018
Размер:
4.73 Mб
Скачать

Перевод чисел в формат символьной строки

Функции atoi( ), atof( ) и др. аналогичные позволяют преобразовать символьную строку в числовой формат. Существует множество функций, которые осуществляют обратную операцию, т. е. преобразуют численные значения в формат символьной строки. Наиболее универсальной из них является функция spruntf( ).

Функция spruntf( ) осуществляет форматированный вывод в символьную строку.

Прототип функции находится в заголовочном файле stdio.h и имеет следующую структуру:

int sprintf(char *buf, char *format [, arg1,…,argn]);

где buf – указатель на символьную строку, содержащий адрес оперативной памяти, с которого размещается преобразованная строка;

format – управляющая строка, составляемая по правилам формирования управляющей строки функции printf( );

arg1,…,argn – список переменных, подвергающихся преобразованию, и размещенных в строку, на которую указывает buf.

Функция sprintf( ) принимает последовательность аргументов, преобразует их каждому формату, указанному в строке format, и выводит форматированные данные совместно с отображаемыми и неотображаемыми символами строки format в строку buf.

Функция sprintf( ) работает аналогично функции fprintf( ), но в отличии от последней выводит данные не в поток, на который указывает первый её параметр (например, на экран дисплея), а в оперативную память по адресу buf.

Например, фрагменты программы

Вывод на экран

«Вывод» в оперативную память

int i = 2;

fprintf( stdout, “i = %d”, i);

char str[10];

int i = 2;

sprintf( str, “i = %d”, i);

Обработка символьных строк

Кроме функций ввода, вывода и преобразования символьных строк существует множество функций по их обработке.

К строкам в языке Си, в отличии от других объектов (констант, переменных, массивов), не могут быть применены такие операции, как сравнение, присвоение, сложение и т.п. Для выполнения подобных операций со строками необходимо использовать специальные функции, прототипы которых находятся в заголовочном файле string.h.

Рассмотрим работу некоторых наиболее полезных и распространенных функций для обработки строк.

Определение длины строки

Для определения фактической длины строки применяется функция strlen( ).

Функция strlen( ) определяет длину строки, т. е. количество символов в строке, не считая символа окончания строки. Прототип функции имеет следующую структуру:

int strlen(char *s);

где аргументом функции является указатель (s) на символьную строку.

Функция возвращает количество символов в строке, включая пробелы и знаки пунктуации, но, не считая символа окончания строки.

Объединение строк

Функция strcat( ) предназначена для добавления одной строки к другой. Прототип функции имеет следующую структуру: char* strcat(char *s1, char *s2);

где параметры s1 и s2 являются указателями на первую и вторую строки.

Функция добавляет в конец первой строки, расположенной по адресу s1, копию второй строки, расположенной по адресу s2. При этом первый символ второй строки помещается вместо символа окончания первой строки (‘\0’). Вторая строка не меняется.

Функция возвращает указатель на суммирующую строку.

Например, фрагмент программы

char str1[20] = “Персональная ”;

char str2[6] = “ЭВМ”;

strcat( str1 , str2 );

puts( str1 );