%[^символы] - вводимая строка ограничивается только символами, указанными в квадратных скобках:
printf(“\nВведите строку:”);
scanf(“%[^aed]”, name);
Если вводимая строка имеет вид:
то переменная name примет значение ae
Любая функция в Си возвращает какое-то значение. Поэтому функция scanf, помимо выполнения форматированного ввода, возвращает количество опознанных и присвоенных элементам списка ввода данных:
printf(“\nВаше имя, возраст, рост и вес: ”);
i=scanf(“%s%d%d%f”, name, &age, &rost, &weight);
Входной поток имеет вид:
При этом переменные name, age, rost, weight получат свои значения, и переменной i будет присвоено значение 4.
Внимание! Использование функции scanf для ввода строк имеет свои особенности.
Если вводимая строка состоит из нескольких слов, разделенных пробелами, то вводится только первое слово (до первого пробела):
char name[20];
printf(“\nВведите ваше имя и фамилию: ”);
scanf(“%s”, name);
Если входной поток имеет вид:
то переменная name примет значение Vasja.
В таком случае для ввода строки лучше использовать функцию gets:
char name[20];
printf(“\nВведите ваше имя и фамилию: ”);
Если входной поток имеет вид:
то переменная name примет значение Vasja Pupkin.
Программа на Си состоит из одной или нескольких функций. Одна из них должна иметь имя main – головная – с нее начинается выполнение всей программы. Остальные функции вызываются из головной, а впоследствии – и из других функций в порядке, определяемом алгоритмом решения задачи.
Все функции в Си имеют четко выраженную структуру – последовательность описаний и операторов, нарушать которую запрещено. Любая функция состоит из директив препроцессора, заголовка и блока.
Рассмотрим структуру головной функции.
В качестве директив препроцессора наиболее часто используются команды:
#include <stdio.h>
#include <conio.h>
#include <math.h>
Заголовок головной функции имеет вид main(), после которого ничего не ставится. Скобки обязательны, хотя в них, как правило, нет аргументов. Если головная функция ничего не возвращает в вызывающую программу (операционную систему), то перед ней стоит слово void: