Syntax
#include <string.h> int strncmp(const char *string1, const char *string2, size_t count);Description
strncmp compares the first count bytes of string1 and string2.
strncmp returns a value indicating the relationship between the substrings, as follows: compact break=fit.
Value
This example demonstrates the difference between strcmp and strncmp.
#include <stdio.h>#include <string.h>
#define SIZE 10
int main(void)
{
int result;
int index = 3;
char buffer1[SIZE] = "abcdefg";
char buffer2[SIZE] = "abcfg";
void print_result(int, char *, char *);
result = strcmp(buffer1, buffer2);
printf("Comparison of each character\n");
printf(" strcmp: ");
print_result(result, buffer1, buffer2);
result = strncmp(buffer1, buffer2, index);
printf("\nComparison of only the first %i characters\n", index);
printf(" strncmp: ");
print_result(result, buffer1, buffer2);
return 0;
/****************************************************************************
The output should be:
Comparison of each character
strcmp: "abcdefg" is less than "abcfg"
Comparison of only the first 3 characters
strncmp: "abcdefg" is identical to "abcfg"
****************************************************************************/
}
void print_result(int res,char *p_buffer1,char *p_buffer2)
{
if (0 == res)
printf("\"%s\" is identical to \"%s\"\n", p_buffer1, p_buffer2);
else
if (res < 0)
printf("\"%s\" is less than \"%s\"\n", p_buffer1, p_buffer2);
else
printf("\"%s\" is greater than \"%s\"\n", p_buffer1, p_buffer2);
}
Related Information