Namensräume
Varianten
Aktionen

std::memchr

Von cppreference.com
< cpp‎ | string‎ | byte
 
 
 
 
Definiert in Header <cstring>
const void* memchr( const void* ptr, int ch, std::size_t count );
      void* memchr(       void* ptr, int ch, std::size_t count );

Wandelt ch in unsigned char um und sucht das erste Vorkommen dieses Wertes in den ersten count Bytes (jedes als unsigned char interpretiert) des von ptr referenzierten Objekts.

Die Funktion verhält sich so, als ob sie die Bytes sequenziell liest und stoppt, 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 wohldefiniert.

(seit C++17)

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 Stelle des Bytes oder ein Nullzeiger, wenn kein solches Byte gefunden wird.

[bearbeiten] Beispiel

Suche in einem Array von Zeichen.

#include <cstring>
#include <iostream>
 
int main()
{
    char arr[] = {'a', '\0', 'a', 'A', 'a', 'a', 'A', 'a'};
    char *pc = (char*) std::memchr(arr, 'A', sizeof arr);
    if (pc != nullptr)
        std::cout << "search character found\n";
    else
        std::cout << "search character not found\n";
}

Ausgabe

search character found

[bearbeiten] Siehe auch

findet das erste Vorkommen eines Zeichens
(Funktion) [bearbeiten]
Findet das erste Element, das bestimmte Kriterien erfüllt
(Funktionstempelat) [edit]
C-Dokumentation für memchr