Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
2020-05-08 | 160 |
5.00
из
|
Заказать работу |
На рис. 12 приведен перечень функций ввода/вывода символов и строк из стандартной библиотеки ввода/вывода.
Прототип | Описание функции |
int getchar (void) | Вводит следующий символ со стандартного устройства ввода и возвращает его в формате целого |
char *gets (char *s) | Вводит символы со стандартного устройства ввода в массив s до тех пор, пока не встретит символ новой строки или индикатор конца файла. После этого к массиву добавляется ограничивающий символ NULL. |
int putchar (int c) | Печать символа, хранящегося в с. |
int puts (const char *s) | Печать строки s с последующим символом новая строка |
int sprintf (char *s, const char *format,...) | Эквивалент функции printf за исключением того, что результат вывода запоминается в массиве s, а не отображается на экране |
int sscanf (char *s, const char *format,...) | Эквивалент функции scanf за исключением того, что ввод осуществляется из массива s, а не с клавиатуры |
Рис. 12. Символьные и строковые функции стандартной библиотеки ввода/вывода
Программа, приведенная на рис. 13, использует функции gets и putchar для чтения строки текста со стандартного входного устройства (клавиатуры) и рекурсивно выводит символы строки в обратном порядке. Функция gets читает символы со стандартного входного устройства и передает их своему аргументу — массиву типа char — до тех пор, пока не встретит символ новой строки или индикатор конца файла. Символ NULL ('\0') добавляется в массив после окончания считывания. Функция putchar печатает свой аргумент — символ. Для печати строки текста в обратном порядке программа рис. 13 вызывает рекурсивную функцию reverse. Если первый символ массива, полученный функцией reverse, является нулевым символом '\0', то следует возврат из функции. В противном случае следует вызов reverse, и ее аргумент указывает на адрес «нового» массива, который начинается с элемента s[l]. Когда рекурсивный вызов завершается, функция putchar выводит элемент s[0]. Порядок следования двух операторов в части else структуры if приводит к тому, что функция reverse переходит к граничному символу NULL строки до вывода символа на печать. Как только рекурсивный вызов завершается, символы выводятся в обратном порядке.
/* Применение gets and putchar */
#include <stdio.h>
main ().. {
char sentence[80]; void reverse(char *);
printf("Enter a line of text:\n");
gets (sentence);
printf(" \nThe line printed backwards is:\n");
reverse(sentence);
return 0;
}
void reverse (char *s) {
if (s[0] == '\0')
return;
else
{reverse (&s [1]);
putchar (s [0]);
}}
Вывод на экран
Enter a line of text:
Characters and Strings
The line printed backwards is:
sgnirtS dna sretcarahC
Enter a line of text:
able was I ere I saw elba
The line printed backwards is:
able was I ere I saw elba
Рис. 13. Применение gets and putchar
Программа, приведенная на рис. 14, использует функции getchar и puts для чтения символов со стандартного входного устройства в символьный массив sentence и выводит массив символов как строку. Функция getchar читает символ со стандартного входного устройства и возвращает его как целое значение. Функция puts получает в качестве аргумента строку (char *) и выводит ее с последующим символом новой строки (‘\n')
/* Применение getchar и puts */
#include <stdio.h>
main ()
{
char c, sentence[80];
int i = 0;
puts ("Enter line of text:");
while ((с = getchar ())!= v\n')
sentence[i++] = c;
sentence [i] = ' \0'; /* вставьте символ NULL в конец строки */
puts("\nThe line entered was:");
puts (sentence);
return 0;
}
Вывод на экран
Enter line of text: This is a test.
The line entered was: This is a test.
Рис. 14. Применение getchar and puts
Программа прекращает ввод символов, когда getchar считывает введенный пользователем символ новой строки. В массив sentence добавляется символ NULL, чтобы массив мог восприниматься как строка. Функция puts выводит строку, содержащуюся в sentence.
Программа, приведенная на рис. 15, использует функцию sprintf для печати форматированных данных в массив s — массив символов. Программа вводит значения типа int и float, которые форматируются и выводятся в массив s. Массив s является первым аргументом функции sprintf.
/* Применение sprintf */
#include <stdio.h>
main () {
char s[80];
int x;
float y;
printf("Enter an integer and float:\n");
scanf("%d%f", &x, &y);
sprintf(s, "Integer:%6d\nFloat:%8.2f", x, y);
printf("%s\n%s\n", "The formatted output stored in array s:", s);
return 0; }
Вывод на экран
Enter an integer and float:
298 87.375
The formatted output stored in array s:
Integer: 298
Float: 87.38
Рис. 15. Применение sprintf
Программа, приведенная на рис. 16, демонстрирует функцию sscanf для чтения форматированных данных из массива символов s. Программа считывает значения типа int и float из массива s и запоминает величины соответственно в переменных х и у. Величины х и у выводятся на печать. Массив s является первым аргументом функции sscanf.
/* Применение sscanf */
# include < stdio. h >
main () {
char s[] = "31298 87.375";
int x;
float y;
sscanf (s, "%d%f", &x, &y);
printf("%s\n%s%6d\n%s%8.3f\n",
"The values stored in character array s are:", "Integer:", x, "Float:", y);
return 0; }
Вывод на экран
The values stored in character array s are:
Integer: 31298
Float: 87.375
Рис. 16. Применение sscanf
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!