How to compare chars in c

A char variable is actually an 8-bit integral value. It will have values from 0 to 255. These are almost always ASCII codes, but other encodings are allowed. 0 stands for the C-null character, and 255 stands for an empty symbol.

So, when you write the following assignment:

char a = 'a'; 

It is the same thing as this on an ASCII system.

char a = 97;

So, you can compare two char variables using the >, <, ==, <=, >= operators:

char a = 'a';
char b = 'b';

if( a < b ) printf("%c is smaller than %c", a, b);
if( a > b ) printf("%c is smaller than %c", a, b);
if( a == b ) printf("%c is equal to %c", a, b);

Note that even if ASCII is not required, this function will work because C requires that the digits are in consecutive order:

int isdigit(char c) {
    if(c >= '0' && c <= '9') 
        return 1;
    return 0;
} 

  1. HowTo
  2. C Howtos
  3. Compare Char in C

Created: December-15, 2020 | Updated: October-17, 2021

  1. Compare Char in C Using the Comparison Operators
  2. Compare Char in C Using the strcmp() Function in C

This tutorial introduces how to compare char in C. A char variable is an 8-bit integral value, from 0 to 255. Here, 0 stands for the C-null character, and 255 stands for an empty symbol.

Compare Char in C Using the Comparison Operators

A char variable has its own ASCII value. So the characters are compared according to the ASCII values. The complete program is as below:

#include<stdio.h>
int main(void)
{
    char firstCharValue='m';
    char secondCharValue='n';

    if(firstCharValue < secondCharValue)
        printf("%c is smaller than %c.", firstCharValue, secondCharValue);

    if(firstCharValue > secondCharValue)
        printf("%c is smaller than %c.", firstCharValue, secondCharValue);

    if(firstCharValue == secondCharValue)
        printf("%c is equal to %c.", firstCharValue, secondCharValue);

    return 0;
}

Output:

m is smaller than n.

Compare Char in C Using the strcmp() Function in C

The strcmp() function is defined in the string header file and used to compare two strings character by character.

If both strings’ first characters are equal, the next character of the two strings will be compared. It continues till the corresponding characters of both strings are either different or a null character '\0' is reached.

The syntax for strcmp() function is as below.

int strcmp (const char* firstStringValue, const char* secondStringValue);
  • If two strings are equal or identical, it returns 0.
  • If the ASCII value of the first unmatched character is greater than the second, It returns a positive integer value
  • If the ASCII value of the first unmatched character is less than the second,it returns a negative integer value.

The complete program to compare two strings is as below:

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

int main(void)
{
    char firstString= "b", secondString= "b",thirdString= "B";
    int result;
    
    result= strcmp(&firstString, &secondString);
    printf("strcmp(firstString, secondString) = %d\n", result);
    
    result = strcmp(&firstString, &thirdString);
    printf("strcmp(firstString,thirdString) = %d\n", result);
   
    return 0;
}

The output is:

strcmp(firstString, secondString) = 0
strcmp(firstString, thirdString) = 1

Write for us

DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - C Char

  • Get Length of Char Array in C
  • Use the getchar Function in C
  • Convert Integer to Char in C
  • How to compare chars in c

    Home » C solved programs

    In this code snippet/program/example we will learn how to compare two characters in c programming language?

    Here we will implement this program “c program to compare two characters” using two methods. First will be simple method in which we will take two characters and compare them, and second we will create a user define function that will take two arguments and returns 0 or -1.

    This program will read two character values from the user and compare them, if the characters are equal program will print “Characters are equal” and if characters are not equal, program will print “Characters are not equal”.

    We will also compare characters using user define function, function name will be compareCharacters(). This function will take two characters as arguments. If characters are equal function will return 0 otherwise function will return -1.

    C Code Snippet/ Program - Compare Two Characters in C programming language

    /*C - Program to compare two characters.*/
    #include<stdio.h>
    int main(){
    	char c1,c2;
    	
    	printf("Enter two characters: ");
    	scanf("%c %c",&c1,&c2); //space b/w %c and %c
    	
    	if(c1==c2)
    		printf("Characters are equal.\n");
    	else
    		printf("Characters are not equal.\n");
    	
    	return 0;
    }
    

    Using user define function

    #include<stdio.h>
    
    char compareCharacters(char a,char b){
    	if(a==b)
    		return 0;
    	else
    		return -1;
    }
    
    int main(){
    	char c1,c2;
    	
    	printf("Enter two characters: ");
    	scanf("%c %c",&c1,&c2); //space b/w %c and %c
    	
    	if(compareCharacters(c1,c2)==0)
    		printf("Characters are equal.\n");
    	else
    		printf("Characters are not equal.\n");
    	
    	return 0;
    }
    

    Output

        First run:
        Enter two characters: x x 
        Characters are equal. 
    
        Second run:
        Enter two characters: x y 
        Characters are not equal.
    
    

    Can we use == to compare char in C?

    Compare Char in C Using the strcmp() Function in C If both strings' first characters are equal, the next character of the two strings will be compared. It continues till the corresponding characters of both strings are either different or a null character '\0' is reached.

    Can you use == for char?

    Yes, char is just like any other primitive type, you can just compare them by == .

    Can you compare two chars?

    The compare(char x, char y) method of Character class is used to compare two char values numerically. The final value returned is similar to what would be returned by: Character. valueoOf(x).

    How do you compare chars?

    You can compare Character class objects:.
    Using Character.compare(char x, char y) Using Character class constructor, we can convert the char primitive value to the Character object. ... .
    Using equals() method. Using equals() method also we can compare the Character class objects..