The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

strstr in C

Purpose of strstr()

strstr() is one of the inbuilt string function in c programming which is used to return the first occurrence of the substring str2 in a string str1.

How strstr() Works

The following diagram clearly illustrate the working principle of strstr() inbuilt string function in C.

strstr() in c

In the above diagram strstr() takes two strings as a parameters. Here strstr() will search for a string str2 in str1. If it presents it returns str1 starting for str2. If not it returns null.

Syntax - strstr()

  • strstr() accepts two parameters.
  • Both parameters are string.
  • To use strstr() inbuilt string function in C, we need to declare #include<string.h> header file.
Syntax
strstr(str1, str2);

C Program - strstr()

Let us work through strstr() function, In the following program we will find the first occurrence of the substring str2 in a string str1

c-using-strstr.c
#include <stdio.h>
#include<string.h>
int main()
{
char str1[30] = "Learning C is awesome";
char str2 [15] = "C";
char *st;
st = strstr(str1, str2);
printf("%s", st);
return 0;
}
C is awesome

Note:

The above program prints the output if the string str2 is present in the source string otherwise it does not print any output.

C Program - Without strstr()

Let us find the first occurrence of the substring str2 in a string str1 without using strstr() inbuilt string function.

c-without-strstr.c
#include <stdio.h>
#include<string.h>
int main()
{
char str1[30] = "Learing C is awesome";
char str2 [15] = "C";
int i, j, k, m, count = 0;
for(i = 0; str2[i] !='\0'; i++)
{
// to find the length of str2
}
for(j = 0 ; str1[j]!='\0'; j++)
{
if(str1[j] == str2[0])
{
for(k = 0 ; k < i;k++)
{
if(str1[j]==str2[k]){
j++;
count++;
}
}
if(count == i)
{
for(m=j-i; str1[m]!='\0'; m++)
printf("%c",str1[m]);
}
}
}
return 0;
}
C is awesome

Note:

The above program looks verbose but yields same the result.

Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report