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

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

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

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

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

intsprintf(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( ) определяет длину строки, т. е. количество символов в строке, не считая символа окончания строки. Прототип функции имеет следующую структуру:

intstrlen(char*s);

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

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

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

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

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

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

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

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

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

charstr2[6] = “ЭВМ”;

strcat(str1 ,str2 );

puts(str1 );