strcmp 같지 않는데도 0이 나오는 경우??

jic5760의 이미지

프로그램을 만들고 사용을 하다 보면 strcmp로 두개의 문자열을 비교할 때
둘의 문자열이 같지 않더라도 0이 나오는 경우가 있는거 같은데 이런 경우는 무었이며 왜 그런 건가요???
그런 경우를 보고도 그냥 념겨서 어떤 글자가 그런지는 모르겠네요..ㅠㅠ

익명 사용자의 이미지

str계열은 널문자 나올 때까지만 비교합니다. 이게 ascii나 utf8같은 인코딩에서는 문제가 없지만 다른 인코딩에서는 문제가 되는데...

만약 두 문자열이 utf16le 같은 인코딩을 사용했다면, 문자 표현 중간에 값이 00인 1바이트가 있을 수 있고, 당연히 그 뒤의 차이는 무시됩니다.

jic5760의 이미지

아 제가 예전에 UTF16을 그냥 strcmp로 처리했었던거 깉습니다.
그래서 비슷한 말이 나오면 문제가 생겼던 것 같네요~
감사합니다~