memchr
Von cppreference.com
| Definiert in Header <string.h> |
||
| void* memchr( const void* ptr, int ch, size_t count ); |
(1) | |
| /*QVoid*/ *memchr( /*QVoid*/ *ptr, int ch, size_t count ); |
(2) | (seit C23) |
1) Findet das erste Vorkommen von (unsigned char)ch in den ersten count Bytes (jedes als unsigned char interpretiert) des Objekts, auf das ptr zeigt.
2) Typ-generische Funktion, äquivalent zu (1). Sei
T ein unqualified Objekttyp (einschließlich void).- Wenn
ptrvom Typ const T* ist, ist der Rückgabetyp const void*. - Andernfalls, wenn
ptrvom Typ T* ist, ist der Rückgabetyp void*. - Andernfalls ist das Verhalten undefiniert.
- Wenn
Das Verhalten ist undefiniert, wenn der Zugriff über das Ende des durchsuchten Arrays hinaus erfolgt. Das Verhalten ist undefiniert, wenn ptr ein Nullzeiger ist.
|
Diese Funktion verhält sich so, als würde sie die Bytes sequenziell lesen und stoppen, sobald ein übereinstimmendes Byte gefunden wird: Wenn das von ptr referenzierte Array kleiner als count ist, aber die Übereinstimmung innerhalb des Arrays gefunden wird, ist das Verhalten gut definiert. |
(seit C11) |
Inhalt |
[bearbeiten] Parameter
| ptr | - | Zeiger auf das zu untersuchende Objekt |
| ch | - | Zu suchendes Byte |
| zählt | - | Maximale Anzahl zu untersuchender Bytes |
[bearbeiten] Rückgabewert
Zeiger auf die Position des Bytes oder ein Nullzeiger, wenn kein solches Byte gefunden wurde.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <stdio.h> #include <string.h> int main(void) { const char str[] = "ABCDEFG"; const int chars[] = {'D', 'd'}; for (size_t i = 0; i < sizeof chars / (sizeof chars[0]); ++i) { const int c = chars[i]; const char *ps = memchr(str, c, strlen(str)); ps ? printf ("character '%c'(%i) found: %s\n", c, c, ps) : printf ("character '%c'(%i) not found\n", c, c); } return 0; }
Mögliche Ausgabe
character 'D'(68) found: DEFG character 'd'(100) not found
[bearbeiten] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.24.5.1 Die Funktion memchr (p: TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.24.5.1 Die Funktion memchr (p: 267-268)
- C11-Standard (ISO/IEC 9899:2011)
- 7.24.5.1 Die Funktion memchr (p: 367)
- C99-Standard (ISO/IEC 9899:1999)
- 7.21.5.1 Die Funktion memchr (p: 330)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.11.5.1 Die Funktion memchr
[bearbeiten] Siehe auch
| findet das erste Vorkommen eines Zeichens (Funktion) | |
| C++ Dokumentation für memchr
| |