#include <iostream>
#include <cstring>
using namespace std;
int main()
{
cout << strcmp("Java","Basical") <<endl;
return 0;
}
我在dev c++和菜鸟工具在线编译上的结果都是1?难道4个字符比7个字符还要大吗?还是因为编译器的原因?strcmp不是比较ASCII码吗,可Java4个字符加起来的ASCII码也不会比Basical大啊,怎么会造成这个结果呢。。
J比B大。
源码中,比较规则是依次比较,只要字符不等就跳出循环,返回结果
int _cdecl strcmp(const char* src, const char* dst)
{
int ret = 0;
while (!(ret = *(unsigned char*)src - *(unsigned char*)dst) && *dst)
++src, ++dst;
if (ret<0)
ret = -1;
else if (ret>0)
ret = 1;
return ret;
}
比较的是首对不同字符,即比较的是J和B