strstr

< c‎ | string‎ | byte
Defined in header <string.h>
char *strstr( const char* str, const char* substr );

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.

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 NULL if no such substring is 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);
    if(pos) {
        printf("found the string '%s' in '%s' at position: %ld\n", substr, str, pos - str);
    } else {
        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

  • 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)