×

C program to compare the two strings

C program to compare the two strings

Strings can be compared either by using the string function or without using string function. First, we will look at how we can compare the strings with the help of string function, i.e., strcmp(), which is defined in a string.h header file.

String comparison by using string function

The string function which is pre-defined in a string.h header file is a strcmp() function. The strcmp() function consider two strings as a parameter, and this function returns an integer value where the integer value can be zero, positive or negative.

The syntax of the strcmp() function is given below:

int strcmp (const char* str1, const char* str2);

In the above syntax, two parameters are passed as strings, i.e., str1 and str2, and the return type is int means that the strcmp() returns an integer value.

The strcmp() function compares the character of both the strings. If the first character of both the strings are same, then this process of comparison will continue until all the characters are compared or the pointer points to the null character ‘\0’.

Possible return values from the strcmp() function

Return value Description
0 When both the strings are equal.
<0 If the ASCII value of a character of the first string is less than the ASCII value of a character of the second string, then the function will return negative value.
>0 If the ASCII value of a character of the first string is greater than the ASCII value of a character of the second string, then the function will return positive value.

Let’s understand through an example.

#include <stdio.h>

#include<string.h>

int main()

{

   char str1[20];  // declaration of char array

   char str2[20];  // declaration of char array

   int value; // declaration of integer variable

   printf("Enter the first string : ");

   scanf("%s",str1);

   printf("Enter the second string : ");

   scanf("%s",str2);

   // comparing both the strings using strcmp() function

   value=strcmp(str1,str2);

   if(value==0)

   printf("strings are same");

   else

   printf("strings are not same");

   return 0;

}

Analysis of the above program

  • We have declared two arrays of char type, i.e., str1 and str2. We take the user input as strings.
  • We compare the strings by using the strcmp() function, i.e., strcmp(str1,str2). This function will compare both the strings str1 and str2. If the function returns 0 value means that both the strings are same, otherwise the strings are not equal.

Output

String comparison without using strcmp() function

#include <stdio.h>

int compare(char[],char[]);

int main()

{

   char str1[20]; // declaration of char array

   char str2[20]; // declaration of char array

   printf("Enter the first string : ");

   scanf("%s",str1);

   printf("Enter the second string : ");

   scanf("%s",str2);

   int c= compare(str1,str2); // calling compare() function

   if(c==0)

   printf("strings are same");

   else

   printf("strings are not same");

    return 0;

}

// Comparing both the strings.

int compare(char a[],char b[])

{

    int flag=0,i=0;  // integer variables declaration

    while(a[i]!='\0' &&b[i]!='\0')  // while loop

    {

       if(a[i]!=b[i])

       {

           flag=1;

           break;

       }

       i++;

    }

    if(flag==0)

    return 0;

    else

    return 1;

}

Analysis of the above program

  • In the above, we have declared two arrays of char type, and we take the user input as strings.
  • We have defined a compare() function which will take user input strings as a parameter, and compare both the strings. If the function returns 0, which means that both the strings are equal otherwise both the strings are not equal.

Output

String comparison by using pointers

#include <stdio.h>

int stringcompare(char*,char*);

int main()

{

  char str1[20]; // declaration of char array

  char str2[20]; // declaration of char array

  printf("Enter the first string : ");

  scanf("%s",str1);

  printf("\nEnter the second string : ");

  scanf("%s",str2);

  int compare=stringcompare(str1,str2); // calling stringcompare() function.

  if(compare==0)

  printf("strings are equal");

 else

 printf("strings are not equal");

return 0;

}

// Comparing both the strings using pointers

int stringcompare(char *a,char *b)

{

   int flag=0;

    while(*a!='\0' && *b!='\0')  // while loop

    {

        if(*a!=*b)

        {

            flag=1;

        }

        a++;

        b++;

    }

    if(flag==0)

    return 0;

    else

    return 1;

}

Analysis of the above program

  • We have created two arrays of char type str1 and str2. We take the user input as strings.
  • We have defined a stringcompare() function which will take two pointers of char type as a parameter. The ‘a’ pointer holds the address of str1 and ‘b’ pointer holds the address of str2. Inside the function, we have created a while loop which will execute until the pointer a or b is not reached to a null character.

Output


Related Topics

Results of Comparison Operations in C and C++

In this tutorial, we will explore comparison operators and how the system should compare an incoming value supplied as a context parameter to a given value or range of values. A...

2 minutes read.

Prototype in C

A prototype is nothing but a model, a model of initial creation of an intended product. Similarly, in the C programming language, all functions have a prototype. In general, all...

4 minutes read.

Fibonacci series in C

We have learned about the Fibonacci series in mathematics. For a quick recap, A Fibonacci series is the sequence of numbers following a certain pattern i.e., the next number should...

3 minutes read.

Diffie-Hellman Algorithm in C

Background: A method of public-key encryption known as elliptic curve cryptography (ECC) is based on the algebraic structure of elliptic curves over finite fields. To ensure equal security, ECC encryption requires fewer...

4 minutes read.

C Program Swap Numbers in cyclic order Using Call by Reference

The three integers that the user entered in cyclical sequence are swapped in this tutorial using call by reference. C Program: #include <stdio.h> void cyclic_Swap ( int *X, int *Y, int *Z ); int...

2 minutes read.

Break, continue and goto statement in C

Break statement Break statement is used to break the process of a loop (while, do while and for) and switch case. Syntax: break; Example 1 while(test Expression) { // codes if(condition for break){ break; } // codes } Example 2 For(int it, condition,...

1 minute read.

Control statement in C

What is a control statement? A control statement helps us to control the flow of the program. The control statement helps us to execute the program's instructions in a user-defined order....

8 minutes read.

String Handling functions in C

String :- The String is the collection of characters. Every String ends with the null character, and the String is enclosed in the double quotations .ie, "javaTpoint". If we see any...

5 minutes read.

Deadlock Detection Program in C

What is Deadlock? A deadlock is a circumstance where a group in the process is halted because they are each holding onto resources while waiting for other methods to obtain them. Think...

5 minutes read.

Header files in C

Header files in C In the C programming language, header files are present, which have an extension of ‘.h’, and it consists of macro definitions, declarations, and so on that are...

4 minutes read.

Data Types in C

Data type is a very important concept in C programming language. Simply, “A data type is the classification of data values that a data item can have.” We need to...

11 minutes read.

Flexible Array Members in a Structure in C

There is flexibility to declare array from c99 generation onwards that declaration of the collections can be made possible without even mentioning its dimension, which means that the displays are...

4 minutes read.

Memory layout in C

Memory layout in C The C language is designed so that it becomes easier for a programmer to decide the amount of memory they want to use in a program. C program...

4 minutes read.

Multiplication table program in C using For loop

Before we move on the program of multiplication table of any natural number, first we have to know about the For loop statement. The syntax of ‘for’ loop in C programming...

3 minutes read.

String literals in C

Constants refer to the fixed values of the program that may not alter during the compiling ad execution. These fixed values are known as literals. In other words, the values...

3 minutes read.

C Program to find the size of a File

Before knowing about the Program, you need to understand what the size of a file is. After that, you should know how it is going to work with the given...

4 minutes read.

Memory leak in C

What is memory leak in C? Memory leak occurs when we keep allocating memory in the heap without freeing it, i.e., the allocated memory in heap is not released back to...

3 minutes read.

Nested if-else statement in C

If we use an if-else statement within another if statement in a C program, it is called a nested if-else statement in C. It helps to check the condition inside...

3 minutes read.

Positioning of file in C

Positioning() function in c The fseek() function is utilized to change the document position of the stream . The fully extent of value from the source should be one of the...

3 minutes read.

Calloc in C

The calloc() is a library function in C which is used for memory allocation. The calloc() function dynamically allocates multiple blocks of memory to complex data structures. This includes data structures...

3 minutes read.