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.
