std::strncmp() function lexicographically compares not more than count characters from the two null-terminated strings and returns an integer based on the outcome.
- This function takes two strings and a number num as arguments and compare at most first num bytes of both the strings.
- num should be at most equal to the length of the longest string. If num is defined greater than the string length than comparison is done till the null-character(‘\0’) of either string.
- This function compares the two strings lexicographically. It starts comparison from the first character of each string. If they are equal to each other, it continues and compare the next character of each string and so on.
- This process of comparison stops until a terminating null-character of either string is reached or num characters of both the strings matches.
int strncmp(const char *str1, const char *str2, size_t count); Parameters: str1 and str2: C string to be compared. count: Maximum number of characters to compare. size_t is an unsigned integral type. Return Value: Value Meaning Less than zero str1 is less than str2. Zero str1 is equal to str2. Greater than zero str1 is greater than str2.
If there are less than count characters in either string, the comparison ends when the first null is encountered.
What does strcmp() return?
strncmp() function return three different types of integer values on the basis of comparison:
1. Greater than zero ( >0 ): A positive value is returned, if a character of str1 and str2 doesn’t match before the num characters and the ASCII value of str1 character is greater than ASCII value of str2 character. As a result, we can say that str1 is lexicographically greater than str2.
str1 is greater than str2 Value returned by strncmp() is: 18
2. Less than zero ( <0 ): A negative value is returned, if a character of str1 and str2 doesn’t match before the num characters and the ASCII value of str1 character is lesser than ASCII value of str2 character. As a result, we can say that str2 is lexicographically greater than str1.
str2 is greater than str1 Value returned by strncmp() is: -18
3. Equal to zero ( 0 ): This function returns zero if the characters of str1 matches with the characters of the str2 upto num characters. As a result, we cannot say that str1 is equal to str2, until num is equal to length of either string.
str1 is equal to str2 upto num characters Value returned by strncmp() is: 0
Note: When the strings are not same, you will find that the value returned by the strncmp() function is the difference between the ASCII values of first unmatched character in str1 and str2 in both the cases.
First 4 characters of string GeeksforGeeks and Geeks are same
Geeks come-before GeeksforGeeks
This article is contributed by Akash Gupta and Shivani Ghughtyal. 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.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Difference between cout and puts() in C++ with Examples
- Difference between forward list and list in C++
- Short-Circuiting in C++ and Linux
- Different types of range-based for loop iterators in C++
- Learn C++ Programming Step by Step - A 20 Day Curriculum!
- Check if Array elements can be maximized upto M by adding all elements from another array
- Why do we need reference variables if we have pointers
- Similarities and Difference between Java and C++
- Macros and its types in C/C++
- Reversed Range-based for loop in C++ with Examples
- How to find index of a given element in a Vector in C++
- Print all lexicographical greater permutations of a given string
- Introduction to Complex Objects and Composition
- NULL undeclared error in C/C++ and how to resolve it
- std::remove_const in C++ with Examples