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