Gadgets 4 Students Career Guide Free Tutorials  Go to Your University  Placement Preparation 
0 like 0 dislike
305 views
in Tutorial & Interview questions by Goeduhub's Expert (9.3k points)
Comparsion: strcmp(), strncmp(), strcasecmp(), strncasecmp()

1 Answer

0 like 0 dislike
by Goeduhub's Expert (9.3k points)
 
Best answer

The strcase*-functions are not Standard C, but a POSIX extension.

The strcmp function lexicographically compare two null-terminated character arrays. The functions return a negative value if the first argument appears before the second in lexicographical order, zero if they compare equal, or positive if the first argument appears after the second in lexicographical order.

#include <stdio.h> 

#include <string.h>

void compare(char const *lhs, char const *rhs) 

{    

int result = strcmp(lhs, rhs); // compute comparison once    

if (result < 0) 

{        

printf("%s comes before %s\n", lhs, rhs);    

else if (result == 0) 

{        

printf("%s equals %s\n", lhs, rhs);    

else 

{                                   // last case: result > 0        

printf("%s comes after %s\n", lhs, rhs);    

}

int main(void) 

{    

compare("BBB", "BBB");    

compare("BBB", "CCCCC");    

compare("BBB", "AAAAAA");    

return 0; 

}

Outputs:

BBB equals BBB BBB comes before CCCCC BBB comes after AAAAAA

As strcmp, strcasecmp function also compares lexicographically its arguments after translating each character to its lowercase correspondent:

#include <stdio.h> 

#include <string.h>

void compare(char const *lhs, char const *rhs) 

{    

int result = strcasecmp(lhs, rhs);          // compute case-insensitive comparison once    

if (result < 0) 

{        

printf("%s comes before %s\n", lhs, rhs);    

else if (result == 0) 

{        

printf("%s equals %s\n", lhs, rhs);    

else 

{                     // last case: result > 0        

printf("%s comes after %s\n", lhs, rhs);    

}

int main(void) 

{    

compare("BBB", "bBB");    

compare("BBB", "ccCCC");    

compare("BBB", "aaaaaa");    

return 0; 

}

Outputs:

BBB equals bBB 

BBB comes before ccCCC 

BBB comes after aaaaaa

strncmp and strncasecmp compare at most n characters:

#include <stdio.h> 

#include <string.h>

void compare(char const *lhs, char const *rhs, int n) 

{    

int result = strncmp(lhs, rhs, n);               // compute comparison once    

if (result < 0) 

{        

printf("%s comes before %s\n", lhs, rhs);    

else if (result == 0) 

{        

printf("%s equals %s\n", lhs, rhs);    

else 

{                       // last case: result > 0        

printf("%s comes after %s\n", lhs, rhs);    

}

int main(void) 

{    

compare("BBB", "Bb", 1);    

compare("BBB", "Bb", 2);    

compare("BBB", "Bb", 3);    

return 0; 

}

Outputs:

BBB equals Bb 

BBB comes before Bb 

BBB comes before Bb

Learn & Improve In-Demand Data Skills Online in this Summer With  These High Quality Courses[Recommended by GOEDUHUB]:-

Best Data Science Online Courses[Lists] on:-

Claim your 10 Days FREE Trial for Pluralsight.

Best Data Science Courses on Datacamp
Best Data Science Courses on Coursera
Best Data Science Courses on Udemy
Best Data Science Courses on Pluralsight
Best Data Science Courses & Microdegrees on Udacity
Best Artificial Intelligence[AI] Courses on Coursera
Best Machine Learning[ML] Courses on Coursera
Best Python Programming Courses on Coursera
Best Artificial Intelligence[AI] Courses on Udemy
Best Python Programming Courses on Udemy

 Important Lists:

Important Lists, Exams & Cutoffs Exams after Graduation PSUs

 Goeduhub:

About Us | Contact Us || Terms & Conditions | Privacy Policy ||  Youtube Channel || Telegram Channel © goeduhub.com Social::   |  | 

 

Free Online Directory

...