- •Міністерство освіти та науки україни
- •Аннотация
- •Анотація
- •Лабораторная работа 1 “Одномерный массив - вектор”
- •1. Общие указания
- •2. Пример реализации
- •3. Варианты задания
- •4. Требования к отчету
- •2. Пример реализации
- •3. Варианты задания
- •4. Требования к отчету
- •1.2. Динамические структуры данных: стек, очередь список
- •2. Пример реализации
- •4.Варианты заданий
- •Порядок выполнения работы.
- •Лабораторная работа №4 “Обработка строк”
- •1. Общие указания
- •2.1. Функции ввода/вывода строк
- •2.2. Другие функции работы со строками
- •3. Пример реализации класса «строка»
- •3.1. Класс Слово (word)(строка в одно слово)
- •3.2. Класс Сообщение (Message)(строка длиной до 80 символов (одна экранная строка)
- •3.3. Класс Предложение (sentence) (Строка, состоящая из одного Предложения, занимающего одну или более строк)
- •4. Варианты задания
- •5. Требования к отчету
- •2. Варианты задания
- •3. Содержание отчета
- •Лабораторная работа 6 “Множественное наследование”
- •1. Общие указания
- •4.Варианты заданий
- •Приложение b Терминологический словарь
2.1. Функции ввода/вывода строк
2.1.1 Работа со строками как с массивом символов
getch()
Функция Вводит символ с консоли без эхопечати (getch). Или с эхопечатью (getche)
Синтаксис #include<conio.h>
int getch(void);
int getche(void);
Файл, содержащий conio.h
прототип
Описание Функция getch читает один символ,
непосредственно с консоли, без вывода его на экран.
Возвращаемое getch возвращает введенный с клавиатуры символ.
значение
Переносимость Функция уникальна для DOS. Функция не
совместима с Windows.
2.1.2 Строка как единое целое
С другой стороны C++ включает специальные функции для ввода/вывода строк как единого целого.
gets(str1) Вводит строку символов из потока
Синтаксис #include<stdio.h>
char *gets(char *s);
Файл, содержащий stdio.h
прототип
Описание Функция gets читает строку
символов, оканчивающуюся символом
перевода строки в переменную *s из
стандартного входного потока stdin. Данная символьная строка оканчивается
символом перехода на новую строку, который
при записи в *s заменяется на нулевое
окончание (\0).
В отличие от scanf, gets позволяет вводить
строки, содержащие символы пробела и
табуляции. Все, что было введено до
перевода каретки, помещается в s.
Возвращаемое При успешном завершении, функция gets
значение возвращает строку s; при достижении конца
файла (EOF) или ошибке возвращается NULL.
Переносимость Функции поддерживаются на системах
UNIX и стандартом ANSI C. Функция не
совместима с Windows.
2.1.3.Строка как одно слово или строка фиксированной длины
Scanf(“%s”,&s)
Вводит все символы вплоть до пробела(не включая.
Scanf(“%<n>s”,&s)
Вводит n символов, где n указывает ширину поля ввода.
2.2. Другие функции работы со строками
Таблица 1 - Функции работы со строками
Функция |
Прототип и краткое описание функции |
strcmp |
int strcmp(const char *str1, const char *str2); Сравнивает строки str1 и str2. Если str1< str2, то результат отрицательный, если str1 = str2, то результат равен 0, если str1> str2, то результат положительный. |
strcpy |
char* strcpy(char*s1, const char *s2); Копирует байты из строки s1 в строку s2 |
strdup |
char *strdup (const char *str); Выделяет память и переносит в нее копию строки str. |
strlen |
unsigned strlen (const char *str); Вычисляет длину строки str. |
strncat |
char *strncat(char *s1, const char *s2, int kol); Приписывает kol символов строки s1 к строке s2. |
strncpy |
char *strncpy(char *s1, const char *s2, int kol); Копирует kol символов строки s1 в строку s2. |
strnset |
char *strnset(char *str, int c, int kol); Заменяет первые kol символов строки s1 символом с. |
Строки, при передаче в функцию, в качестве фактических параметров могут быть определены либо как одномерные массивы типа char[], либо как указатели типа char*. В отличие от обычных массивов в этом случае нет необходимости явно указывать длину строки.
Функции преобразования строки S в число:
целое: int atoi(S); длинное целое: long atol(S); действительное: double atof(S); при ошибке возвращает значение 0.
Функции преобразования числа V в строку S:
целое: itoa(int V,char S,int kod); длинное целое: ltoa(long V,char S,int kod); 2<=kod<=36, для отрицательных чисел kod=10.