memchr – поиск первого вхождения указанного символа в массиве.
Синтаксис:
#include < string.h >
void *memchr (const void *arr, int c, size_t n);
Аргументы:
arr – указатель на массив, в котором будет осуществляться поиск.
с – код искомого символа.
n – размер сравниваемой части массива в байтах.
Возвращаемое значение:
Указатель на найденный символ, если, на указанном участке массива, найден требуемый символ.
NULL – если требуемый символ не найден.
Описание:
Функция memchr ищет вхождение в массив (область памяти) символа, код которого задан аргументом c, сравнивая каждый байт массива (области памяти) определенный как unsigned char с кодом искомого символа. Если искомый символ найден, то возвращается адрес найденного символа и сравнение завершается. Если, после проверки n байтов, искомый символ не найден, то сравнение прекращается и функция возвращает NULL.
Пример:
В примере ищется символ '4' в массиве src и если символ найден, то он заменяется на символ '!'.
#include < stdio.h > //Для printf
#include < string.h > //Для memchr
int main (void)
{
// Исходный массив
unsigned char src[15]=”1234567890”;
// Переменная, в которую будет сохранен указатель
// на искомый символ.
char *sym;
// Вывод исходного массива
printf (“src old: %s\n”,src);
// Поиск требуемого символа
sym = memchr (src, ‘4’, 10);
// Если требуемый символ найден, то заменяем его
// на символ '!'
if (sym != NULL)
sym[0]=’!’;
// Вывод исходного массива
printf (“src new: %s\n”,src);
return 0;
}
| |
Результат:
Вывод в консоль:
src old: 1234567890
src new: 123!567890
|
Смотри так же:
memchr
rindex
strcasestr
strchr
strchrnul
strcspn
strpbrk
strrchr
strsep
strspn
strstr
wcspbrk
|