The basic difference between these two are :
- strcmp compares both the strings till null-character of either string comes whereas strncmp compares at most num characters of both strings. But if num is equal to the length of either string than strncmp behaves similar to strcmp.
- Problem with strcmp function is that if both of the strings passed in the argument is not terminated by null-character, then comparison of characters continues till the system crashes. But with strncmp function we can limit the comparison with num parameter.
When pass str1 and str2 as parameters to strcmp() function, it compares both the strings character by character till null-character(‘\0’). In our case, upto character ‘s’ both the strings remain same but after that str1 has character ‘h’ having ASCII value 104 and str2 has null-character having ASCII value 0. Since the ASCII value of str1 character is greater than ASCII value of str2 character, so strcmp() function returns value greater than zero. Hence, string str1 is greater than string str2 in strcmp() function.
When pass these parameters in strncmp() function with the 3rd parameter num upto which want to compare strings then it compares both the strings character by character till num(if num <= length of smallest string) or till null character of smallest string. In our case, both the strings have same character upto num, so strncmp() function returns value zero. Hence, string str1 is equal to string str2 in strncmp() function.
str1 is equal to str2 upto num characters Value returned by strncmp() is: 0 str1 is greater than str2 Value returned by strcmp() is: 104
This article is contributed by Akash Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- std::strncmp() in C++
- Write one line functions for strcat() and strcmp()
- strcmp() in C/C++
- Difference between Stop and Wait protocol and Sliding Window protocol
- Similarities and Difference between Java and C++
- Difference between Yaacomo and and XAP
- Difference between VoIP and and POTS
- Difference and Similarities between PHP and C
- Difference between Time Tracking and Time and Attendance Software
- Difference Between Single and Double Quotes in Shell Script and Linux
- Difference Between malloc() and calloc() with Examples
- What is the difference between single quoted and double quoted declaration of char array?
- Difference between "int main()" and "int main(void)" in C/C++?
- Difference between ++*p, *p++ and *++p
- Difference Between DOS and Windows
- Difference between User Level thread and Kernel Level thread
- What’s difference between The Internet and The Web ?
- Difference between Priority Inversion and Priority Inheritance
- What’s difference between Linux and Android ?
- What’s difference between header files "stdio.h" and "stdlib.h" ?