Язык программирования Си. Строковые литералы, ввод-вывод, ветвления

Содержание

Слайд 2

Строковые литералы

Указываются в кавычках:
"Test #2"; "Press any key...".
Пустая строка: "".
В тексте литерала

Строковые литералы Указываются в кавычках: "Test #2"; "Press any key...". Пустая строка:
единичные кавычки недопустимы, а двойные игнорируются:
"2º19'59" в. д." — недопустимо;
"Роман ""Тихий Дон""" → Роман Тихий Дон.
Кавычки нужно экранировать служебным символом «\»:
"Роман \"Тихий Дон\"" → Роман "Тихий Дон".

Слайд 3

Строковые литералы

Экранирование — оформление служебных символов так, что они получают буквальное значение.
Символ «\»

Строковые литералы Экранирование — оформление служебных символов так, что они получают буквальное
экранируется самим собой:
"C:\\bootlog.txt" → C:\bootlog.txt.
Символ «\» также экранирует конец строки:
"Программирование \
на языке Си"
обозначает строку
Программирование на языке Си.

Слайд 4

Строковые литералы

Escape-последовательность (управляющая последовательность, УП) — последовательность символов, имеющая особое значение.
Используется для вставки служебных символов.
Начинаются

Строковые литералы Escape-последовательность (управляющая последовательность, УП) — последовательность символов, имеющая особое значение.
с «\»: \", \\, \'.
Даёт возможность указывать символы по их восьмеричным (oct) и шестнадцатеричным (hex) кодам:
\000, где 000 — трёхзначный oct-код символа;
\x0, где 0 — hex-код символа (возможно несколько цифр).
"\065" → 5; "\x35" → 5; "\x74\145\x73\x74" → test.
В коде символов можно указывать меньше цифр, но нежелательно.

Слайд 5

Строковые литералы

Примеры:
После символа \7 можно написать цифру 4: "\0074".
При записи "\74" получится символ с кодом 64:

Строковые литералы Примеры: После символа \7 можно написать цифру 4: "\0074". При
>.
Hex-запись не органичивается каким-то количеством цифр:
"\x445" — предупреждение о переполнении строковой константы. Результат не определён.

Слайд 6

Строковые литералы

Как записать символ 5 сразу после символа \x44?

"\x44""5"

Строковые литералы Как записать символ 5 сразу после символа \x44? "\x44""5"

Слайд 7

Строковые литералы

Стандартом также определены:

Строковые литералы Стандартом также определены:

Слайд 8

Строковые литералы

Примеры результата на экране:
"Information\b\bcs" → Informatics;
"A\tB\tC" → A B C.
Использование символа \n

Строковые литералы Примеры результата на экране: "Information\b\bcs" → Informatics; "A\tB\tC" → A
в литерале
"Л. Н. Толстой\n\"Война и мир\""
даёт на экране переход на следующую строку:
Л. Н. Толстой
"Война и мир".
Перед прочими символами «\» игнорируется:
\h → h, \N → N.

Слайд 9

Строковые литералы

Каждый символ занимает в памяти 1 байт.
Любая строковая константа заканчивается символом с кодом 0

Строковые литералы Каждый символ занимает в памяти 1 байт. Любая строковая константа
(«нуль-терминатором»).
Все функции работы со строками это знают, поэтому не обрабатывают символы после первого же «нуль-терминатора» в строке.
Явно указывать «нуль-терминатор» не нужно.

Слайд 10

Строковые литералы

Символьная константа — в апострофах:
'A'; '$'; '\''; '\077'; '\n'.
Занимает 1 байт:
не может быть пустым;
«нуль-терминатором»

Строковые литералы Символьная константа — в апострофах: 'A'; '$'; '\''; '\077'; '\n'.
не заканчивается.
Может храниться в переменной типа char:
char P = 'A';

Слайд 11

Строковые литералы

Возможна поддержка «широких» (wide) символов и строк — по 2 или 4 байта на символ.
«Широкие» литералы — с префиксом L:
L'Ы'
L"Lorem ipsum

Строковые литералы Возможна поддержка «широких» (wide) символов и строк — по 2
dolor sit amet..."
«Широкий» символ может храниться в переменной int (short, long):
short P = 'Ф';

Слайд 12

Ввод-вывод

Используется заголовочный файл stdio.h.
Для его использования пишем в начале кода:
#include
Основные операции:
ввод:

Ввод-вывод Используется заголовочный файл stdio.h. Для его использования пишем в начале кода:
scanf, fscanf, wscanf и т. п.;
вывод: printf, fprintf, wprintf и т. п.

Слайд 13

Вывод (printf)

Функция printf выводит на стандартный поток вывода строковое выражение. Возвращает количество

Вывод (printf) Функция printf выводит на стандартный поток вывода строковое выражение. Возвращает
выведенных символов.
printf("Hello world!\n");
Полный формат вызова printf:
printf(Форматная строка, параметры);
Форматная строка — особая строковая константа, задающая формат вывода остальных параметров.

Слайд 14

Вывод (printf)

Пример вывода с форматной строкой:
printf("Время: %d часов %d минут", H, M);
В форматной

Вывод (printf) Пример вывода с форматной строкой: printf("Время: %d часов %d минут",
строке символ «%» является служебным. Экранируется сам собой:
printf("Загрузка завершена на 100%%");
Со знака «%» начинаются УП, задающие формат вывода для каждого из остальных параметров:
%ФлагиШиринаТочностьДлинаТип

Слайд 15

Вывод (printf)

В форматных УП обязателен только Тип:

Вывод (printf) В форматных УП обязателен только Тип:

Слайд 16

Вывод (printf)

Флаги определяют параметры вывода:
Пример: printf("Value %+i at %#X", Val, Cell);
Флаги можно

Вывод (printf) Флаги определяют параметры вывода: Пример: printf("Value %+i at %#X", Val,
комбинировать: printf("%#+X", U);

Слайд 17

Вывод (printf)

Ширина — число: какой минимум знаков отвести под значение:
printf("%6i", Value);
Либо символ «*» —

Вывод (printf) Ширина — число: какой минимум знаков отвести под значение: printf("%6i",
количество знаков указано в дополнительном параметре перед основным:
printf("%*i", Length, Value);
Если число короче, то остаток заполняется пробелами (или нулями, если есть флаг 0):
printf("[%12i]", 125); → [ 125]
Если число длиннее, то оно выводится целиком:
printf("[%3i]", 142857); → [142857]

Слайд 18

Вывод (printf)

Точность — точка и следующее за ним число:
для целых (%i, %d, %u,

Вывод (printf) Точность — точка и следующее за ним число: для целых
%o, %x, %X) — минимум знаков под значение, остаток заполняется нулями; точность 0 означает вывод пустой строки для нулевого значения;
для %f, %e, %E — число десятичных знаков;
для %g, %G — максимальное число значащих цифр;
для %s — только указанное количество первых символов.
Точность по умолчанию — .1. Символы «.*» означают задание точности отдельным параметром.
Примеры:
printf("[%3.2d] [%.2f]", 3, 5.376); → [ 03] [5.38]
printf("[%.0d] [%.*f]", 0, 1, 2.39); → [] [2.4]

Слайд 19

Вывод (printf)

Длина — уточняет длину типов:
h — для целых (%i, %d, %u, %o, %x,

Вывод (printf) Длина — уточняет длину типов: h — для целых (%i,
%X), тип «короткий» (short);
l — для целых (%i, %d, %u, %o, %x, %X), тип «длинный» (long);
ll — для целых (%i, %d, %u, %o, %x, %X), тип «очень длинный» (long long);
L — для вещественных (%f, %e, %E, %g, %G), тип «длинный» (long double).

Слайд 20

Вывод (printf)

Пример:
char A = -1; unsigned char B = 1;
short C =

Вывод (printf) Пример: char A = -1; unsigned char B = 1;
-2; unsigned short D = 2;
long E = -3; unsigned long F = 3;
long long G = -4; unsigned long long H = 4;
double I = 5.0; long double J = 6.0;
char K = 'a';
printf("%d %u %hd %hu %li %lu %lli %llu %f %Lf \
%c %s", A, B, C, D, E, F, G, H, I, J, K, "!!!");
Вывод на экран:
-1 1 -2 2 -3 3 -4 4 5.000000 6.000000 a !!!

Слайд 21

Вывод (printf)

Пример:
printf("%+07.*lF\n", 2, 3.14159265359);
printf("%.4s\n", "Computer");
printf("%c%c%c\n", 65, 66, 67);
printf("%f %f\n", 0.0 / 0.0,

Вывод (printf) Пример: printf("%+07.*lF\n", 2, 3.14159265359); printf("%.4s\n", "Computer"); printf("%c%c%c\n", 65, 66, 67);
5.0 / 0.0);
Вывод на экран:
+003.14
Comp
ABC
-nan inf

Слайд 22

Ввод (scanf)

Полный формат вызова scanf:
scanf(Форматная строка, параметры);
Возвращает количество успешно считанных величин.
Форматная строка —

Ввод (scanf) Полный формат вызова scanf: scanf(Форматная строка, параметры); Возвращает количество успешно
как у printf.
В УП указывается тип. Можно указать ширину (максимальное количество знаков для считывания) и длину значения.
Остальные параметры — соответствующее количество адресов (переменных), в которые будут считаны данные.

Слайд 23

Ввод (scanf)

Унарная операция & — взятие адреса.
Получает адрес, начиная с которого, в памяти хранится

Ввод (scanf) Унарная операция & — взятие адреса. Получает адрес, начиная с
переменная: &A, &Result.
scanf("%Lf %Lf %Lf", &x, &y, &z);
Форматная строка может содержать другие символы кроме УП. Тогда необходимо водить и их:
scanf("R%i", &N);
(ожидается ввод, например, R12, R-46…)
Исключение — пробелы, переводы строк, табуляции.

Слайд 24

Ветвления

Синтаксис ветвления:
if(условие)
команда1;
else
команда2;
Вычисляет значение условия.
Если условие истинно (ненулевое), тогда выполняется команда 1, иначе — команда 2.

Ветвления Синтаксис ветвления: if(условие) команда1; else команда2; Вычисляет значение условия. Если условие

Слайд 25

Ветвления

Раздел else может отсутствовать.
Можно указать несколько команд — в {}:
if(условие)
{
командаA1; командаA2; командаA3;...
}
else
{ командаB1; командаB2;

Ветвления Раздел else может отсутствовать. Можно указать несколько команд — в {}:
командаB3;...}
Точка с запятой после команды обязательна, после операторных скобок — нет.
Имя файла: Язык-программирования-Си.-Строковые-литералы,-ввод-вывод,-ветвления.pptx
Количество просмотров: 155
Количество скачиваний: 0