- •Программирование на языке c
- •Работа с файлами и строками на языке c
- •Основные теоретические сведения Оператор выбора – switch…case…default
- •Оператор безусловного перехода - goto
- •Функции языка c
- •Определение функции
- •Объявление функции
- •Вызов функции
- •Работа с файлами
- •Открытие файла – fopen
- •Закрытие файла – fclose
- •Перемещение позиции ввода/вывода – fseek
- •Запись символа / строки в файл – fputc / fputs
- •Чтение символа / строки из файла – fgetc / fgets
- •Форматированный вывод в файл – fprint
- •Форматный ввод из файла – fscanf
- •Функции стандартной библиотеки ввода/вывода – stdio.H
- •Функции работы со строками – string.H, mem.H, mbstring.H
- •Задание
- •Варианты задания
Функции работы со строками – string.H, mem.H, mbstring.H
Функция |
Описание |
_fstr* |
|
void *memccpy(void *dest, const void *src, int c, size_t n) _fmemccpy |
Копирование n символов или до c. Рез – за c или 0 |
void *memchr(const void *s, int c, size_t n) _fmemchr _wmemchr |
Поиск n символов c |
int memcmp(const void *s1, const void *s2, size_t n) _fmemcmp |
Сравнение n элементов |
void *memcpy(void *dest, const void *src, size_t n) _fmemcpy |
Копирование n символов. |
int memicmp(const void *s1, const void *s2, size_t n); _fmemicmp |
Сравнение n элементов игнорир. регистр |
void *memmove(void *dest, const void *src, size_t n) |
Копирование n байт |
void *memset(void *s, int c, size_t n) _fmemset _wmemset |
Установка n байт в значение c |
void movedata(unsigned srcseg, unsigned srcoff, unsigned dstseg, unsigned dstoff, size_t n) |
Копирование n байт |
void movmem(const void *src, void *dest, unsigned length) _fmovmem |
Копирование n байт |
void setmem(void *dest, unsigned length, char value) |
Установка length байт в значение value |
char *stpcpy(char *dest, const char *src) _wcspcpy |
Копирование строки. Рез – ук. на 0 |
char *strcat(char *dest, const char *src) _fstrcat wcscat |
Конкатенация. Рез - dest |
char *strchr(const char *s, int c) _fstrchr _mbschr |
Поиск c. |
int strcmp(const char *s1, const char *s2) _fstrcmp wcscmp _mbscmp |
Сравнение строк |
int strcmpi(const char *s1, const char *s2) |
Макрос Сравнение строк без уч регистра |
int strcoll(const char *s1, const char *s2) wcscoll _mbscoll |
Сравнение строк с учетом LC_COLLATE из locale |
int _stricoll(const char *s1, const char *s2) _wcsicoll _mbsicoll |
Макрос Сравнение строк без уч регистра LC_COLLATE |
char *strcpy(char *dest, const char *src) _fstrcpy wcscpy _mbscpy |
Копирование строки. Рез – ук. на dest |
size_t strcspn(const char *s1, const char *s2) _fstrcspn wcscspn |
Поиск в s1 символов из s2. Рез – длина сигмента |
char *strdup(const char *s) _fstrdup _wcsdup _mbsdup |
Дублирование строки через malloc |
char *strerror(int errnum) |
Преобразование номера ошибки в строку |
char *_strerror(const char *s) |
Конструирует строку ошибки добавляя Error: s \n len(s)<94 |
int stricmp(const char *s1, const char *s2) _fstricmp _wcsicmp _mbsicmp |
Сравнение строк без уч регистра |
size_t strlen(const char *s) _fstrlen wcslen _mbslen _mbstrlen(for LC_CTYPE) |
Длина строки |
char *strlwr(char *s) _fstrlwr _wcslwr |
Смена регистра на маленький с уч. LC_CTYPE |
char *strncat(char *dest, const char *src, size_t maxlen) _fstrncat wcsncat _mbsncat |
Конкатенация строк не более maxlen из src |
int strncmp(const char *s1, const char *s2, size_t maxlen) _fstrncmp wcsncmp _mbsncmp |
Сравнение строк (частей) длиной до maxlen |
int strncmpi(const char *s1, const char *s2, size_t n) wcsncmpi |
Сравнение строк (частей) длиной до maxlen без уч регистра |
char *strncpy(char *dest, const char *src, size_t maxlen) _fstrncpy wcsncpy _mbsncpy |
Копирование строки до maxlen. \0 не копир. если >=maxlen |
int strnicmp(const char *s1, const char *s2, size_t maxlen) _fstrnicmp _wcsnicmp _mbsnicmp |
Сравнение строк (частей) длиной до maxlen без уч регистра |
char *strnset(char *s, int ch, size_t n) _fstrnset _wcsnset _mbsnset |
Замена n символов (или до \0) строки на ch |
char *strpbrk(const char *s1, const char *s2) _fstrpbrk wcspbrk _mbspbrk |
Поиск в s1 на наличие любых символов из s2. Рез – ук на первое вхождение |
char *strrchr(const char *s, int c) _fstrrchr wcsrchr _mbsrchr |
Поиск последнего вхождения символа c |
char *strrev(char *s) _fstrrev _wcsrev _mbsrev |
Реверс строки |
char *strset(char *s, int ch) _fstrset _wcsset _mbsset |
Замена символов строки на ch (до \0) |
size_t strspn(const char *s1, const char *s2) _fstrspn wcsspn _mbsspn |
Поиск сегмента s1, содержащего символы из s2 |
char *strstr(const char *s1, const char *s2) _fstrstr wcsstr _mbsstr |
Поиск подстроки s2 в строке s1 |
char *strtok(char *s1, const char *s2) _fstrtok wcstok _mbstok |
Поиск маркера в s1, разделенного символом из s2. Вставляет \0 перед разделителем. Дальнейший поиск – s1=0 |
char *strupr(char *s) _fstrupr _wcsupr _mbsupr |
Сзменение регистра на загл. Учет LC_CTYPE |
size_t strxfrm(char *target, const char *source, size_t n) wcsxfrm |
Трансформация строки с уч LC_COLLATE. Рез – длина рез строки |
Для работы с функциями, начинающимися с mem… необходимо включить включаемый файл mem.h; начинающимися на mb… - mbstring.h; для остальных – string.h.