C 编程/string.h/strncmp
外观
strncmp() 是一个标准库函数,用于比较两个字符串,最多比较指定长度。该函数在 string.h 中声明,并与以下原型兼容
int strncmp (const char * s1, const char * s2, size_t num);
该函数使用 字典序 比较字符串,但最多检查 num
个字符。如果字符串相等,或者它们的第一个 num
个字符相等,则返回零;否则,如果 s1
小于 s2
,则返回一个负整数,如果 s1
大于 s2
,则返回一个正整数。一个简单的实现可能如下所示
int strncmp (const char * const s1, const char * const s2, const size_t num)
{
const unsigned char * const us1 = (const unsigned char *) s1;
const unsigned char * const us2 = (const unsigned char *) s2;
for(size_t i = (size_t)0; i < num; ++i)
{
if(us1[i] < us2[i])
return -1;
else if(us1[i] > us2[i])
return 1;
else if(! us1[i]) /* null byte -- end of string */
return 0;
}
return 0;
}
然而,在实践中,实际的实现会进行显著的优化。