КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Структуры (struct)
Преобразование строки в число. Поиск первого вхождения подстроки s2 в строку s1. Поиск первого вхождения любого символа строки s2 в строке s1. Поиск последнего входящего символа С в строке S. Поиск первого вхождения символа С в строке S. char *strchr (const char *s, int c); возвращает указатель на первую ячейку строки S, содержащую символ C (‘\0’ является частью строки поэтому тоже может разыскиваться). Если символ не найден – возвращается нулевой указатель (см. лист 2 - NULL)
char *strrchr(const char *s, int c); аналогично strchr();
char *strpbrk(const char *s1, const char *s2); возвращает указатель на 1-ю ячейку s1, где найден любой символ, находящийся в s2. Если никакой символ не найден, то функция возвращает NULL.
char *strstr(const char *s1, const char *s2); возвращает указатель на первую встречную подстроку s2 в строки s1. Если не найдена – NULL.
а) atoi(s) – строку s преобразует в int (целое число) и возвращает его. int atoi(const char *s) концом числа служит любой символ не являющийся цифрой. Если преобразование не удалось, то возвращается 0. пример: atoi(“42куку”) вернет 42 б) atol(s) - строку s преобразует в long int(длинное целое) в) atof(s) - строку s преобразует в float(вещественное). При ошибке – 0. г) atod(s) - строку s преобразует в double(вещестевенное удвоенное)
Раздел 6. Структуры.
В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов. В языке C++ структура является видом класса и обладает всеми его свойствами, но во многих случаях достаточно использовать структуры так, как они определены в языке С:
struct [ имя_типа ] { тип_1 элемент_1; тип_2 элемент_2; … тип_n элемент_n; } [ список_описателей ];
Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него. Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов. В этом случае описание структуры служит определением элементов этого списка:
// Определение массива структур и указателя на структуру: struct { char fio[30]; int date, code: double salary: }staff[100]. *ps;
Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например:
struct Worker{ // описание нового типа Worker char fio[30]: int date, code: double salary; }; // описание заканчивается точкой с запятой // определение массива типа Worker и указателя на тип Worker: Worker staff[100], *ps;
Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например:
struct List; // объявление структуры List struct Link{ List *p; // указатель на структуру List Link *prev, *succ; // указатели на структуру Link }: struct List { /* определение структуры List */}:
Это позволяет создавать связные списки структур. Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания:
struct{ char fio[30]; int date, code; double salary; }worker = {"Страусенке", 31, 215, 3400.55}:
При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива (учитывая, что многомерный массив — это массив массивов):
struct complex{ float real, im; } compl [2][3] = { {{1, 1}, [1, 1}, {1, 1}}, II строка 1, то есть массив compl[0] {{2, 2}, {2, 2}, {2, 2}} // строка 2, то есть массив compl[l] }:
Для переменных одного и того же структурного тина определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. Другие операции со структурами могут быть определены пользователем (см. «Перегрузка операций», с. 189). Размер структуры не обязательно равен сумме размеров ее элементов, поскольку они могут быть выровнены по границам слова. Доступ к полям структуры выполняется с помощью операций выбора (точка) при обращении к полю через имя структуры и -> при обращении через указатель, например:
worker worker, staff[100]. *ps; … worker.fio = "Страусенке"; staff[8].code = 215; ps->salary = 0.12;
Если элементом структуры является другая структура, то доступ к ее элементам выполняется через две операции выбора:
struct A {int a: double x;}; struct В (A a: double x;} х[2]; х[0].а.а = 1; х[1].х = 0.1;
Как видно из примера, поля разных структур могут иметь одинаковые имена, поскольку у них разная область видимости. Более того, можно объявлять в одной области видимости структуру и другой объект (например, переменную или массив) с одинаковыми именами, если при определении структурной переменной использовать слово struct, но не советую это делать — запутать компилятор труднее, чем себя.
Раздел 7. Функции (подпрограммы).
Дата добавления: 2014-01-11; Просмотров: 474; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |