Namensräume
Varianten
Aktionen

strstr

Von cppreference.com
< c‎ | string‎ | byte
Definiert in Header <string.h>
char* strstr( const char* str, const char* substr );
(1)
/*QChar*/* strstr( /*QChar*/* str, const char* substr );
(2) (seit C23)
1) Findet das erste Vorkommen der nullterminierten Byte-Zeichenkette, auf die von substr gezeigt wird, in der nullterminierten Byte-Zeichenkette, auf die von str gezeigt wird. Die abschließenden Nullzeichen werden nicht verglichen.
2) Typ-generische Funktion, äquivalent zu (1). Sei T ein nicht-qualifizierter Zeichentyp.
  • Wenn str vom Typ const T* ist, ist der Rückgabetyp const char*.
  • Andernfalls, wenn str vom Typ T* ist, ist der Rückgabetyp char*.
  • Andernfalls ist das Verhalten undefiniert.
Wenn eine Makrodefinition jeder dieser generischen Funktionen unterdrückt wird, um auf eine tatsächliche Funktion zuzugreifen (z.B. wenn (strstr) oder ein Funktionszeiger verwendet wird), wird die tatsächliche Funktionsdeklaration (1) sichtbar.

Das Verhalten ist undefiniert, wenn str oder substr kein Zeiger auf eine nullterminierte Byte-Zeichenkette ist.

Inhalt

[bearbeiten] Parameter

str - Zeiger auf die zu untersuchende nullterminierte Byte-Zeichenkette
substr - Zeiger auf die zu suchende nullterminierte Byte-Zeichenkette

[bearbeiten] Rückgabewert

Zeiger auf das erste Zeichen der gefundenen Teilzeichenkette in str oder ein Nullzeiger, wenn keine solche Teilzeichenkette gefunden wird. Wenn substr auf eine leere Zeichenkette zeigt, wird str zurückgegeben.

[bearbeiten] Beispiel

#include <stdio.h>
#include <string.h>
 
void find_str(char const* str, char const* substr)
{
    char const* pos = strstr(str, substr);
    if (pos)
        printf(
            "Found the string [%s] in [%s] at position %td\n",
            substr, str, pos - str
        );
    else
        printf(
            "The string [%s] was not found in [%s]\n",
            substr, str
        );
}
 
int main(void)
{
    char const* str = "one two three";
    find_str(str, "two");
    find_str(str, "");
    find_str(str, "nine");
    find_str(str, "n");
 
    return 0;
}

Ausgabe

Found the string [two] in [one two three] at position 4
Found the string [] in [one two three] at position 0
The string [nine] was not found in [one two three]
Found the string [n] in [one two three] at position 1

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.24.5.7 Die Funktion strstr (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.24.5.7 Die Funktion strstr (p: 269)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.24.5.7 Die Funktion strstr (p: 369)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.21.5.7 Die Funktion strstr (p: 332)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.11.5.7 Die Funktion strstr

[bearbeiten] Siehe auch

findet das erste Vorkommen eines Zeichens
(Funktion) [bearbeiten]
findet das letzte Vorkommen eines Zeichens
(Funktion) [bearbeiten]
C++ Dokumentation für strstr