C library - strstr() function



The C library strstr() function returns a pointer to the first index of a specified substring in another string. The main goal of strstr() is to search for a substring within a larger string and it helps to find the first occurrence of a specified substring.

Syntax

Following is the syntax of the C library strstr() function −

char *strstr (const char *str_1, const char *str_2);

Parameters

This function takes two parameters −

  • str_1 − This is a main string.

  • str_2 − The substring to be searched in main string i.e. str_1.

Return Value

The function return the value based on following conditions −

  • The function returns a pointer to the first characters of str_2 in str_1 or null pointer if str_2 is not found in str_1.

  • If str_2 is found as an empty string, str_1 is returned.

Example 1

Following is the C library program that demonstrates the substring presence within a main string using the function strstr().

#include <stdio.h>
#include <string.h>

int main () {
   const char str[20] = "TutorialsPoint";
   const char substr[10] = "Point";
   char *ret;
   
   // strstr(main_string, substring)
   ret = strstr(str, substr);
   
   // Display the output
   printf("The substring is: %s\n", ret);
   
   return(0);
}

Output

On execution of code, we get the following result −

The substring is: Point

Example 2

Here, we demonstrate how to search the substring within a main string using the strstr() function.

#include <stdio.h>
#include <string.h>

int main() {
   char str_1[100] = "Welcome to Tutorialspoint";
   char *str_2;
   str_2 = strstr(str_1, "ials");
   printf("\nSubstring is: %s", str_2);
   return 0;
}

Output

The above code produces the following result −

Substring is: ialspoint

Here, first four characters represents substring from a given string.

Example 3

Below the example set the if-else condition to check whether the substring present in the main string or not.

#include <stdio.h>
#include <string.h>

int main(){
   char str[] = "It is better to live one day as a King";
   char target[] = "live";
   char *p = strstr(str, target);

   if (p)
        printf("'%s' is present in the given string \"%s\" at position %ld", target, str, p-str);
   else
        printf("%s is not present \"%s\"", target, str);

    return 0;
}

Output

After executing the code, we get the following result −

'live' is present in the given string "It is better to live one day as a King" at position 16
Advertisements