Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Suchen nach Zeichen in einem Puffer.
Syntax
void *memchr(
const void *buffer,
int c,
size_t count
); // C only
void *memchr(
void *buffer,
int c,
size_t count
); // C++ only
const void *memchr(
const void *buffer,
int c,
size_t count
); // C++ only
wchar_t *wmemchr(
const wchar_t * buffer,
wchar_t c,
size_t count
); // C only
wchar_t *wmemchr(
wchar_t * buffer,
wchar_t c,
size_t count
); // C++ only
const wchar_t *wmemchr(
const wchar_t * buffer,
wchar_t c,
size_t count
); // C++ only
Parameter
buffer
Ein Zeiger auf einen Puffer.
c
Zu suchendes Zeichen.
count
Anzahl der zu prüfenden Zeichen.
Rückgabewert
Gibt bei Erfolg einen Zeiger auf die erste Position von c
in buffer
zurück. Andernfalls wird NULL zurückgegeben.
Hinweise
memchr
und wmemchr
suchen Sie nach dem ersten Vorkommen c
in den ersten count
Zeichen von buffer
. Sie wird angehalten, wenn sie gefunden c
wird oder wenn sie die ersten count
Zeichen überprüft hat.
In C akzeptieren diese Funktionen einen const
-Zeiger als erstes Argument. In C++ sind zwei Überladungen verfügbar. Die Überladung, die einen Zeiger zu const
akzeptiert, gibt einen Zeiger zu const
zurück; die Version, die einen Zeiger auf Nicht-const
akzeptiert, gibt einen Zeiger auf Nicht-const
zurück. Das Makro _CRT_CONST_CORRECT_OVERLOADS
wird definiert, wenn sowohl die const
Als auch die Nicht-Versionconst
dieser Funktionen verfügbar sind. Wenn Sie das Verhalten für beide C++-const
Überladungen in C++ benötigen, definieren Sie das Symbol _CONST_RETURN
.
Anforderungen
Routine | Erforderlicher Header |
---|---|
memchr |
<memory.h> oder <string.h> |
wmemchr |
<wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Alle Versionen der C-Laufzeitbibliotheken.
Beispiel
// crt_memchr.c
#include <memory.h>
#include <stdio.h>
int ch = 'r';
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
int main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
printf( "Search char: %c\n", ch );
pdest = memchr( string, ch, sizeof( string ) );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "Result: %c found at position %d\n", ch, result );
else
printf( "Result: %c not found\n" );
}
Output
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
Search char: r
Result: r found at position 12
Siehe auch
Pufferbearbeitung
_memccpy
memcmp
, wmemcmp
memcpy
, wmemcpy
memset
, wmemset
strchr
, , wcschr
_mbschr
_mbschr_l