![](/user_photo/64119_0mZzG.jpg)
- •Типы данных в C
- •Целые типы данных
- •Знаковые и беззнаковые типы
- •Вещественные типы данных
- •Вычисление арифметических выражений
- •Указатели
- •Выражения, содержащие указатели
- •Преобразование типов указателей
- •Адресная арифметика
- •Пример использования указателей
- •Перечислимый тип
- •Тип void
- •Структура программы на языке C
- •Функция пользователя
- •Функция, не возвращающая значение
- •Функция с параметрами, возвращающая значение
- •Массивы
- •Доступ к элементу массива
- •Примеры
- •Обращение к элементу одномерного массива с помощью переменной- указателя
- •Двумерный массив
- •Доступ к элементу двумерного массива с помощью указателей
- •Комбинированные способы обращения к элементам двумерного массива
- •Задача
- •Параметры функции
- •Передача параметра-значения
- •Передача параметра-указателя
- •Передача параметра-ссылки
- •Пердача в функцию одномерного массива
- •Задача
- •Генератор случайных чисел
- •Решение задачи (1)
- •Решение задачи (2)
- •Решение задачи (3)
- •Решение задачи (4)
- •Решение задачи (5)
- •Результат работы программы
- •Передача в функцию двумерного массива
- •Задача
- •Решение задачи (1)
- •Решение задачи (2)
- •Решение задачи (3)
- •Решение задачи (4)
- •Решение задачи (5)
- •Объявление пользовательского типа
- •Методы программирования
- •Конструирование программы для обработки двумерного массива
- •MyModul.h
- •Main.cpp
- •MyModul.h (2 редакция)
- •Задача
- •Строки в C
- •Ввод и вывод строк
- •Функции для обработки строк
- •Пример обработки строк
- •Массивы строк
- •Обработка символов в строках
- •Пример распознавания символов
- •Разбиение строки на лексемы
- •Результат работы программы
- •Структуры
- •Объявление тега структуры (синоним типа)
- •Анонимный тип структуры
- •Инициализация структурной переменной
- •Действия над структурами
- •Задача
- •Передача в функцию структурной переменной
- •Вложенные структуры
- •Массив структур
- •Передача в функцию массива структур
- •void input_struct(struct Person* P, int n)
- •Объединения
- •Пример программы
- •Инициализация объединения
Массивы строк
Массив указателей на строки:
char *strings[ ] = {''один'', ''два'', ''восемь''};
Двумерный массив символов:
char array[ ][7] = {''один'', ''два'', ''восемь''};
Обработка символов в строках
Заголовочный файл ctype.h isdigit( ) - распознает цифры
isspace( ) - распознает пробелы isalpha( ) - распознает буквы
islower( ) - распознает строчные буквы isupper( ) - распознает прописные буквы
tolower( ) - преобразует прописные буквы в строчные
toupper( ) - преобразует строчные буквы в прописные
Пример распознавания символов
char str[30] = ''2011 год''; int n = strlen(str);
for(int i=0; i<n;i++)
if(isdigit(str[i])) printf(''цифра\n''); else
if(isspace(str[i])) printf(''пробел\n''); else printf(''%c\n'', toupper(str[i]));
Разбиение строки на лексемы
char* strtok(char* s1, const char*s2)
s1 — указатель на разбиваемую строку
s2 — строка, содержащая символы- разделители исходной строки
Возвращаемое значение при последовательных вызовах: указатель на очередную лексему.
Заголовочный файл string.h
![](/html/64119/250/html_tBpcN_DLfb.983G/htmlconvd-SxVhkn65x1.jpg)
Результат работы программы
#include <stdio.h> #include <string.h> int main()
{
char str[100]; char*p = NULL; char* str1 = str; gets(str);
p = strtok(str1, "! "); // список разделителей - ! и пробел do
{
printf("\n %s",p); p=strtok(NULL,"! ");
}
while (p!= NULL); return 0;
}
Структуры
1.Объявление типа структуры
2.Объявление структурной переменной
Объявление типа (Person):
struct Person
{
char Name[30]; /*поле структуры*/ int Year; /*поле структуры*/
} ;
Объявление переменной (Nick): struct Person Nick;
Объявление тега структуры (синоним типа)
typedef struct Person
{
char Name[30]; int Year;
} PERSON;
PERSON Ann;
Анонимный тип структуры
struct
{
char Name[30]; int Year;
} Tom;
Tom — имя перемной структурного типа Выделено памяти: 30 + 4 = 34 (байта)
Инициализация структурной переменной
struct Person
{
char Name[30]; int Year;
} ;
struct Person Stud1 = {''John'', 1994}; struct Person Stud2 = {''Ann'', 1993};