Q & A

strcmp 함수에서 한글은 무엇을 기준으로 비교하나요?

strcmp 함수에서 영문 문자열을 비교할 때는 ASCII 코드를 기준으로 비교합니다. 한글은 .c 파일을 저장한 인코딩을 따릅니다.

  • CP949, EUC-KR: KS X 1001(KS C 5601), KS X 1003(KS C 5636)
  • UTF-8: 유니코드

내부적으로 이런 차이점이 있다는 정도만 알아두면 됩니다. 실제 사용에서는 큰 차이점이 없습니다.

대소문자를 구분하지 않고 문자열을 비교하려면 어떻게 하나요?

대소문자를 구분하는 strcmp는 C 언어 표준 함수이지만 대소문자를 구분하지 않는 함수들은 C 언어 표준이 아닙니다. 따라서 운영체제, 컴파일러별로 함수 이름이 다릅니다.

  • Visual Studio: string.hstricmp
  • GCC: strings.hstrcasecmp