
- •БИТОВЫЕ ПОЛЯ В СТРУКТУРАХ
- •Пример объявления битовых полей: unsigned color : 4;
- •struct names
- •При ссылке на поле в выражениях по маске
- •Union - объединение (куча) - подобно структуре в том,
- •Доступ к полям объединения выполняется через
- •Пример:
- •Многомерные массивы. new позволяет выделять только одномерные
- •УТЕЧКА
- •Утечки памяти потребление памяти программой
- •РАБОТА СО СТРОКАМИ
- •Прототип функции strcpy:
- •char* strdup(const char *source);
- •Пример:
- •Пример:
- •Сравнение строк
- •Пример:
- •Ф-я strncmp выполняет сравнение заданного
- •Функция strnicmp выполняет сравнение заданного
- •ПРЕОБРАЗОВАНИЕ СТРОК
- •ОБРАЩЕНИЕ СТРОК
- •Ф-я strchr определяет первое вхождение символа с в
- •Пример:
- •Ф-я strcspn просматривает строку str1 и выдает длину
Пример:
char string1[] = "Ivanov Petr"; char string2[] = "IVANOV PETr"; i = strcmp(string1, string2);
В данном случае переменной i присваивается положительное значение, так как string1 больше string2 (ASCII-коды символов в нижнем регистре больше ASCII-кодов символов в верхнем.)
Ф-я stricmp выполняет сравнение двух строк, не учитывая регистра символов.
int stricmp(const char *strl, const char *str2); Возвращает в качестве ре¬зультата сравнения целую величину:
< 0 когда strl меньше, чем str2; = 0 когда strl равна str2;
> 0 когда strl больше, чем str2.
Пример:
char string1[] = "Ivanov Petr"; char string2[] = "IVANOV PETr";
Ф-я strncmp выполняет сравнение заданного
количества символов двух строк с учетом регистра символов.
int strncmp(const char *str1, const char *str2, size_t num);
Ф-я сравнивает первые num символов строк str1 и str2. Возвращает в качестве результата сравнения целую величину:
< 0 когда str1 меньше, чем str2; = 0 когда str1 равна str2;
> 0 когда str1 больше, чем str2. Пример
char string1[] = "Ivanov Andrey"; char string2[] = "Ivanov Sergey "; i = stricmp(string1, string2, 8);
В данном случае переменной i присваивается отрицательное значение, так как значение "Ivanov A"
меньше, чем "Ivanov S".
Функция strnicmp выполняет сравнение заданного
количества символов двух строк без учета регистра символов.
int strnicmp(const char *str1, const char *str2, size_t num);
Функция сравнивает первые num символов строк str1 и str2, не делая различия в регистре символов. Возвращает в качестве результата сравнения целую величину:
< 0 когда str1 меньше, чем str2; = 0 когда str1 равна str2;
> 0 когда str1 больше, чем str2. Пример
char string1[] = "Ivanov Sergey"; char string2[] = "IVANOV STEPAN"; i = strnicmp(string1, string2, 8);
В данном случае переменной i присваивается
значение 0, так как подстрока "Ivanov S" отличается в
ПРЕОБРАЗОВАНИЕ СТРОК
Ф-я strlwr преобразует символы верхнего регистра в символы нижнего регистра в строке source. Другие символы не затрагиваются.
char* strlwr (char *source)
Ф-ия возвращает указатель на строку source.
Пример:
char str[] = "PATIENT of room 12"; strlwr(str);
Переменная str теперь содержит строку "patient of room 12 ".
Ф-я strupr преобразует символы нижнего регистра в символы верхнего регистра в строке source. Другие символы не затрагиваются.
Прототип функции strupr: char* strupr(char *source)
Ф-я возвращает указатель на строку source. Пример
char str[] = "Patient Petrov S.";
ОБРАЩЕНИЕ СТРОК
Библиотека string.h предлагает ф-ю strrev для записи символов в строке в обратном порядке.
Ф-я strrev обращает порядок символов в строке str и возвращает указатель на строку str.
char* strrev(char *str) Функция char str[] = “12345"; strrev(str) ;
printf(“%s”,str);
Будет выведено “54321".
ПОИСК СИМВОЛОВ
Библиотека STRING.H содержит ряд функций для поиска символов в строках. Это функции strchr, strrchr, strspn, strcspn и strpbrk. Они осуществляют поиск в строках символов и простых символьных шаблонов.
Ф-я strchr определяет первое вхождение символа с в
строку target и возвращает указатель на символ в строке target, который соответст¬вует заданному образцу с. Если символ с в строке не обнаруживается, функция возвращает 0.
char* strchr(const char *target, int c) Пример
char str[81] = "PATIENT of room 12"; char *strPtr;
strPtr = strchr(str, 'r');
Указатель strPtr теперь содержит адрес подстроки "room 12" в строке str.
Ф-я strrchr находит последнее вхождение символа с в строку target. Ф-я возвращает указатель на символ в строке target, который соответствует заданному образцу с. Если символ с в строке не обнаруживается, функция возвращает 0.
char* strrchr(const char *target, int c)
Пример:
char str[81] = "PATIENT of room 12"; char* strPtr;
strPtr = strrchr(str, ' ');
Указатель strPtr теперь указывает на подстроку " 12" в строке str.
Ф-я strspn возвращает число символов от начала строки target, совпадающих с любым символом из шаблона pattern.
size_t strspn(const char *target, const char *pattern)
char str[] = “Dorohov S."; char substr[] = “Sidorov V."; int index;
index = strspn(str, substr);
Переменной index присваивается значние 4, потому что первые 4 символа из str содержатся в подстроке substr.
Ф-я strcspn просматривает строку str1 и выдает длину
подстроки, отсчитываемой с начала строки, символы которой полностью отсутствуют в строке str2.
size_t strcspn(const char* str1, const char* str2)
Пример:
char strng[] = "The diagnosis of the…"; int i = strcspn(strng, " di");
Этот пример возвращает 3 (расположение первого пробела в строке strng) переменной i.
Функция strpbrk просматривает строку и ищет в строке target первое вхождение любого символа из образца pattern. Если такие символы не содержатся в строке, ф-я возвращает 0.
char* strpbrk(const char* target, const char* pattern)
Пример:
char *str = "PATIENT of room 12", *ptr, *substr = “or"; ptr = strpbrk(str, substr);
В этом случае ptr будет "of room 12".