Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод-вывод символьных данных.Содержание книги
Поиск на нашем сайте Для ввода и вывода символьных значений с помощью библиотечных функций printf() и scanf() используется спецификация преобразования %с. В качестве параметра функции scanf() должны передаваться адреса переменных, а не их имена.
Пример 4: ввести предложение, слова которого разделены пробелами, предложение заканчивается точкой. Удалить из предложения повторяющиеся пробелы.
#include <stdio.h> #include <conio.h> void main() { char z,s; // z-текущий вводимый символ // s-предыдущий символ clrscr(); printf ("Введите предложение с точкой в конце: \n "); for(z=s=' '; z!='.'; s=z) { scanf("%c",&z); if (z==' '&& s==' ') continue; printf("%c",z); } getch(); } Для ввода и вывода символьных строк с помощью библиотечных функций printf() и scanf() используется спецификация преобразования % s. Строка символов, вводимая с помощью функции scanf(), не должна содержать пробелов (функция вводит строку до первого пробела). Для ввода строки символов, содержащей пробелы, используется функция gets () (вводится вся строка, в том числе и соответствующий клавише <Enter> символ ‘\n’).
Пример 5: Написать программу, которая во введённой с клавиатуры строке, преобразует строчные буквы латинского и русского алфавита в прописные буквы. #include <stdio.h> #include <conio.h> void main() { unsigned char st[80]; // строка символов int i; printf(“\n Введите строку текста и нажмите <Enter>”); gets(st); i=0; while(st[i]) {if ((st[i]>=’a’ && st[i]<=’z’)|| (st[i]>=’а’ && st[i]<=’п’)) st[i]-=32; else if (st[i]>=’р’ && st[i]<=’я’) st[i]-=80; i++; } printf(“\n %s\”,st); printf(“\n Для завершения нажмите <Enter> ”); getch(); }
Для ввода и вывода символов в библиотеке предусмотрены специальные функции обмена: getchar () - функция без параметров. Позволяет читать из входного потока (обычно с клавиатуры) по одному символу за обращение, чтение вводимых данных начинается после нажатия клавиши <Enter>. Функция не выводит на экран символ, соответствующий нажатой клавиши. putchar (Х) - выводит символьное Х в стандартный выходной поток (обычно на экран дисплея)
Пример 6: ввести предложение с точкой в конце, подсчитать общее количество символов, отличных от пробела (не считая точки). #include <stdio.h> #include <conio.h> void main() { char z,s; int k; clrscr(); printf ("Введите предложение с точкой:: \n "); for(k=0; (z=getchar())!='.';) if (z!=' ') k++; printf("\n Количество символов=%d",k); getch(); }
Пример 7: написать программу, которая выводит на экран сообщение в «телеграфном» стиле: буквы сообщения должны появляться по одной с некоторой задержкой. #include <stdio.h> // посимвольный вывод сообщения #include <conio.h> #include "dos.h" //для доступа к функции delay void main() { char msg[]="\n\r Приветствую Вас!\0"; int i; // номер символа clrscr(); i=0; while (msg[i]) // while (msg[i]!='\0') эти записи эквивалентны { putch(msg[i++]); delay(150); } printf(" \n Введите ENT"); getch(); } Если строки формируются из отдельных символов (используется функция getchar()),необходимо соглашение о признаке окончания строки, например - наличие точки в конце предложения, ограничение длины строки 80 символами. Для учёта ситуаций с пробелами необходимо при анализе очередного введённого символа рассматривать и предыдущий символ.
Пример 8: написать программу, которая выводит на экран последнее слово предложения с точкой. #include <conio.h> #include <stdio.h> void main() { char s,ss; // s – вводимый символ // ss-предыдущий введённый символ char A[80]; // массив для слова int i,k; // k-длина слова clrscr(); printf(" введите предложение с точкой: \n"); for (i=0, s=' ',k=0; i<=79; i++) { ss=s; s=getchar(); if (s==' ') continue; if (s=='.') break; if (ss==' ') k=0; A[k]=s; k++; } // выход по точке или по окончанию ввода строки if (i==80 || k==0) printf(" Неверное предложение \n"); else { A[k]='\0'; // признак конца строки printf(" Последнее слово: %s",A); } getch(); } Пример 9: написать программу, которая выводит на экран код, введённого пользователем символа. Программа должна завершать работу в результате ввода точки. #include <stdio.h> #include <conio.h> void main() { unsigned char ch; // char -128 - +128 clrscr(); puts("Вводите символы, признак завершения ввода '.' "); printf("-> "); do { ch=getch(); printf("\n Символ: %c Код: %d",ch,ch); }while(ch!='.'); printf("\n ENT"); getchar(); } Пример 10: написать программу, которая вычисляет длину введённой с клавиатуры строки. #include <stdio.h> #include <conio.h> #define pr5" " void main() { char st[80]; int i; clrscr(); i=0; puts("Введите строку "); printf("-> "); gets(st); printf("\n"); while (st[i++]); // while (st[i]!='\0') эти записи эквивалентны printf(" \n длина строки %d \n ",i); printf(" ENT"); getchar(); } Пример 11: написать программу, которая во введённой строке определяет (печатает) порядковый номер (позицию) каждого символа, отличного от пробела или цифры. // проверка вводимых числовых данных #include <stdio.h> #include <conio.h> void main() { char z[]="0123456789 "; char s; int i,j; printf (" Введите строку символов: \n "); for(i=1; (s=getchar())!='\n'; i++) { for (j=0; j<11; j++) if (s==z[j]) break; if (j==11) printf(" Ошибка в символе %c с номером %d \n",s,i); } getch(); }
Функции работы со строками. Для работы со строками существует специальная библиотека, описание которой находится в файле <string.h> Наиболее часто используются функции strcpy(), strcat(), strlen(), strcmp().
|
||
|
Последнее изменение этой страницы: 2020-12-09; просмотров: 245; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |