在单片机开发的时候,项目需要用到了string.h中的STRNCMP()函数。
在调试的时候,发现strncmp()存在一个漏洞,当你指定长度大少的时候,更
函数在比较的小于指定长度的字符串(前面字符向相同情况下)一样输出相匹配。
例如: strncpy(string1,“123456”,6);当你输入:12345、123、1234等都
返回0,比较相同。
更改后:
{
u8 res,k=1;
while(*string1!='\0'&&*string2!='\0'&&k<count)
{
k++;
if(*string1==*string2)
{
string1++;
string2++;
}
else break;
}
res=*string1-*string2;
return res;
}
今晚再补充