Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 167; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.114.125 (0.015 с.) |