-
strcmp와 strncmpCoding/Tip !! 2018. 8. 20. 12:39
strcmp 와 strncmp 를 사용하는 방법이 아닌 왜 사용하는가에 대한 포스팅이다.
C언어에서의 기본 형식은 비교 연산으로 값의 크기를 비교한다.
하지만 배열은 메모리 주소를 값으로 가지기 때문에 비교연산시에 메모리 주소를 비교하게 된다.
그러므로 원치 않는 결과가 발생하게 된다.
예를 들어 보겠다.
char example1[10] = "hi hi"
char example2[10] = "hi hi"
if(example1 == example2){
cout << "같다" << endl;
}
else
{
cout << "다르다" << endl;
}
-> 위의 설명으로 인하여 결과는 "다르다" 가 나오게 된다.!!
strcmp 관련 함수를 이용하게 되면 사전적 비교를 하게 되기때문에 앞에서부터 문자를 비교하게된다.
또한 사전적 비교는 맨앞부터 비교하여 차이가 발생하면 더 이상 비교하지 않고 종료하게 된다.!
같다면 0 앞의 인자가 크다면 양수(+), 작다면 음수(-)를 리턴하게 된다!
반응형'Coding > Tip !!' 카테고리의 다른 글
const 참조자 (0) 2018.09.17 댕글링 포인터 ( Dangling Pointer) (0) 2018.09.17 C++ 클래스에서 다른클래스를 함수의 인자로 사용할 때 (0) 2018.04.14 Syncronize 와 Unsyncronize (0) 2018.04.10 fflush 와 scanf (0) 2018.04.10 댓글