CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
memchr - memset - работа с байтами в массивах
Описание
memchr отыскивает в буфере buf байт со значением 'c'. Поиск продолжается среди count количества байтов или до встречи значения 'c'. memcmp последовательно сравнивает байты буферов buf1 и buf2 и продолжает это, пока они совпадают, либо пока не выполнит заданное количество сравнений count. memcmp возвращает целое, меньшее, равное или большее 0 в зави- симости от результата сравнения последней пары байтов. memcpy и memmove копируют count байтов из buf2 в buf1. memcpy работает быстрее, но не работает, если buf1 и buf2 перекрываются (имеют общую часть).Возвращают buf1. memset устанавливает первые count байтов в buf равными val. Возвращает buf.
Возвращаемое значение
memchr возвращает указатель на позицию найденной литеры 'c' в буфере, либо NULL. memcpy и memmove возвращают buf1. memset возвращает buf. memcmp возвращает значения: <0 buf1 < buf2 =0 buf1 = buf2 >0 buf1 > buf2
Пример
#include <string.h> #include <stdio.h> char buffer[50]; char buffer2[50]="Пример строки\n"; char srccpy[]="Пример 2 строки\n"; char * result; int reslt; main() { printf("Работает функция memcpy\n"); memcpy(buffer, buffer2, 15); printf("Работает функция memchr\n"); result = memchr(buffer, 'т', 50); if (result != NULL) printf("Литера(т) найдена в (%d)\n", result-buffer+1); else printf("Ошибка-(т) не найдена\n"); printf("Работает функция memcmp\n"); reslt = memcmp(buffer, buffer2, 50); printf("Результат memcmp: %s\n", reslt; printf("Buffer before memmove : %s", buffer); result = memmove(buffer, srccpy, sizeof(srccpy)); printf("Буфер после memmove : %s", buffer); printf("Буфер до memset : %s", buffer); result = memset(buffer, 'x', 6); printf("Буфер после memset : %s", buffer); }
Рекомендация
Смотрите также strcmp, strcat, strset, strchr.