string - what is the difference between "some" == "some\0" and strcmp("some","some\0") in c++? -
string - what is the difference between "some" == "some\0" and strcmp("some","some\0") in c++? -
what difference between "some" == "some\0" , strcmp("some","some\0") in c++?
why if("some" == "some\0") returns false , if(!strcmp("some","some\0")) returns true ?
see next diagram. shows 2 strings in memory, content in box, beside box you'll see address of each one.
when you're doing if("some" == "some\0") comparing addresses. translated if (0xdeadbeef == 0x0badcafe) false.
when utilize strcmp, compare content of each box until reach \0 in each of them. that's why sec test returns true.
if alter first test if("some" == "some") compiler may potentially see same strings , store them once. means test transform if (0x0badcafe == 0x0badcafe) true.
c++ string comparison
Comments
Post a Comment