Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК-1_АЯП_рус.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.19 Mб
Скачать

Int имя переменной;

Функции ввода символа

scanf(“%c”, &имя символьной переменной);

getchar();

getch ();

Функции вывода символа

printf(“%c”, имя символьной переменной);

putchar(имя символьной переменной);

Функция getchar за одно обращение к ней выдает в качестве результата один символ, поступивший с системного ввода.

Признаком конца потока является нажатие CTRL+Z. В программе значение этого символа используется через символическое имя EOF(end of file).

 Функция putchar за одно обращение к ней выдает один символ в стандарный выходной поток.

Рассмотрим примеры:

а) вывод на экран всех прописных латинских буквы

 #include <stdio.h>

main() { char c; c='A' while(c<='Z') {putchar(c);        c=c+1; } }

б) копирование файла

#include <stdio.h> main() { char c; c=getchar(); while(c!=EOF) {putchar(c); c=getchar(); } }  

Пока не обнаружен конец входного потока, ЭВМ получает с клавиатуры символ (это делает функция getchar) и сразу же вывдит его на экран дисплея с помощью функции putchar. Для завершения программы достаточно нажать CTRL+Z.

Программу копирования можно написать и более компактно. В языке Си любое присваивание например, c=getchar(), можно использовать в любом выражении в качестве операнда; его значение - это просто значение, присваиваемое левой части.

#include stdio.h main() { char c;

while((c=getchar())!=EOF)putchar(c); } 

Это компактная, элегантная программа принимает символ с клавиатуры и присваивает его переменной с, а затем сравнивает его с признаком конца файла. Пока этот признак не обнаружен, выполняется тело цикла и символ выдается на экран. В противном случае цикл, а вместе с ним и вся программа завершаются;

в) подсчёт количества строк, слов и символов во введенном с клавиатуры тексте

#include <stdio.h> main() {   int c,line,word,kx,inword=0;   line=word=kc=0;   while((c=getchar())!=EOF) {kc=kc+1;        if(c=='\n') line=line+1;        if(c=='' || c=='\n' || c=='\t') inword=0;          else               if(!inword)                  { inword=1; word=word+1; }       } printf("\n"); printf("строк - %d\n",line); printf("символов - %d\n",kc); }

Слово - любая последовательность символов, не содержащяя знаков табуляции ("\t"), пробелов и символов "\n". Предполагатсяь также, что любая строка, в том числе и последняя, завершается символом перехода на новую строку "\n.

Функции библиотеки обработки символов

В стнадартной библиотеке Си предусмотрены многие полезные функции, выполняющие простые действия с символьными данными.Нижеприведенные функции проверяют, является ли переменая c:

isalpha(c) буквой

isdigit(c) цифрой

islower(c) строчной буквой

isspace(c) пустым символом (пробел, табуляция или новая строка)

isupper(c) прописной буквой

isalnum(c) алфавитноцифровым (буква или цифра)

isascii(c) кодом ASCII (0-127)

iscntrl(c) управляющим символом

ispunct(c) знаком пунктуации,

если да, то функция возвращает единицу, в противном случае -0.

Функция toupper(c) преобразует c в прописную букву

Функция tolower(c) преобразует c в строчную букву.

Для вызова данных функций необходимо подключить библиотеку стандартных функций <ctype.h>

В результате выполнения программы

#include<stdio.h>

#include<ctype.h>

#include<string.h>