71. 문자열 비교와 strcmp함수

학생1) 문자열 비교는 strcmp 함수를 사용하지. 학생2) strcmp 함수는 사전식 비교를 하지. 사전식 비교는 앞에서부터 문자를 비교하는 원리야.

C언어에서 기본 형식은 비교 연산으로 값의 크기를 비교할 수 있죠.
그런데 배열은 메모리 주소를 값으로 갖기 때문에 비교 연산을 하면 메모리 주소를 비교해요.
개발자는 문자열의 내용을 비교하길 원하는데 메모리 주소를 비교하기 때문에 원하지 않는 결과가 나오지 않아요.
이는 프로그램 버그를 만드는 것이라 주의하세요.

◈ 비교 연산으로 문자열을 비교했을 때의 버그

◈ 실행 결과

 

이러한 문제점을 갖고 있어서 문자열을 비교는 표준 라이브러리 함수를 제공하고 있어요.

두 가지 함수는 사전식으로 문자열을 비교하죠.
사전식 비교는 맨 앞의 문자부터 비교하는 것으로 차이가 생기면 더 이상 비교하지 않아요.
그리고 비교 결과는 차이가 없을 때 0, 앞쪽이 크면 양수, 뒤쪽이 크면 음수를 반환하죠.

◈ 문자열 비교

◈ 실행 결과

 

◈ 부분 문자열 비교

◈ 실행 결과


[C언어 무료 동영상 강의] 71. 문자열 비교와 strcmp 함수