On this page
strstr
Defined in header <string.h> | 
      ||
|---|---|---|
 | 
      (1) | |
 | 
      (2) | (since C23) | 
1) Finds the first occurrence of the null-terminated byte string pointed to by 
  substr in the null-terminated byte string pointed to by str. The terminating null characters are not compared.
  2) Type-generic function equivalent to (1). Let 
  T be an unqualified character object type. 
   - If 
stris of typeconst T*, the return type isconst char*. - Otherwise, if 
stris of typeT*, the return type ischar*. - Otherwise, the behavior is undefined.
 
(strstr) or a function pointer is used), the actual function declaration (1) becomes visible.
  The behavior is undefined if either str or substr is not a pointer to a null-terminated byte string.
Parameters
| str | - | pointer to the null-terminated byte string to examine | 
| substr | - | pointer to the null-terminated byte string to search for | 
Return value
Pointer to the first character of the found substring in str, or a null pointer if such substring is not found. If substr points to an empty string, str is returned.
Example
#include <string.h>
#include <stdio.h>
 
void find_str(char const *str, char const *substr)
{
    char *pos = strstr(str, substr);
    pos ? printf("found the string '%s' in '%s' at position %td\n",
                 substr, str, pos - str)
        : printf("the string '%s' was not found in '%s'\n",
                 substr, str);
}
 
int main(void)
{
    char *str = "one two three";
    find_str(str, "two");
    find_str(str, "");
    find_str(str, "nine");
    find_str(str, "n");
 
    return 0;
}
   Output:
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
   References
- C17 standard (ISO/IEC 9899:2018):
 - 7.24.5.7 The strstr function (p: 269)
 - C11 standard (ISO/IEC 9899:2011):
 - 7.24.5.7 The strstr function (p: 369)
 - C99 standard (ISO/IEC 9899:1999):
 - 7.21.5.7 The strstr function (p: 332)
 - C89/C90 standard (ISO/IEC 9899:1990):
 - 4.11.5.7 The strstr function
 
See also
| finds the first occurrence of a character  (function)  | 
     |
| finds the last occurrence of a character  (function)  | 
     |
C++ documentation for strstr | 
     |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
 https://en.cppreference.com/w/c/string/byte/strstr