컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post del.icio.us / blogspot.com 등의 한글 인코딩(Encoding)은?C언어] 짝수 홀수 여부 판단; 숫자 짝홀 구하기; Even, Odd NumberBoot disk failure: 우분투를 VMware에 설치할 때 에러 해결 - (VM웨...C언어] (Yes-No) (Y-N) (+Cancel) 선택 묻기 사용자 입력받기 - 예/아...리눅스] 페도라(Fedora)를 VMware에 설치할 때, 운영체제(OS) 선택은?Ubuntu] 우분투 리눅스 비프음 제거하는 법 - Beep(삑삑하는 소리) 없애기C언어] 정규분포, 가우스(Gaussian) 랜덤(난수) 발생 - Gaussian Rand...우분투(Ubuntu)리눅스] root 계정으로 로그인하기, 루트(root) 계정 만들기리눅스] 시스템 종료/리부팅(다시 시작)/로그아웃 명령 - Linux Shutdown Lo...문제해결] LCD 모니터 글자가 희미하고, 가독성이 낮음 - LCD Monitor Scre...

C언어] 문자열 비교, 대소문자 구분/구분없이 비교하기 - Compare Strings Ignore Case

Wednesday, October 04, 2006
스폰서 링크

C언어에서는 strcmp() 함수로, 2개의 문자열이 같은지 아닌지 비교합니다.

만약 영문자를 대소문자 구분없이 비교하려면 strcmpi()를 사용합니다. 물론 한글 문자 비교에도 사용 가능합니다. 둘 다 string.h 에 정의되어 있습니다.


문자열 비교 예제


파일명: 0.cpp
#include <stdio.h>
#include <string.h>


void main(void) {
  char *s1 = "똠방각하", *s2 = "맹구";
  char s3[] = "foo", s4[] = "FOO";


  // "똠방각하"와 "맹구"를 비교
  if (!strcmp(s1, s2)) {
    puts("같군요");
  } else {
    puts("다르군요");
  }
  // 결과: 다르군요



  // "foo" 와 "FOO" 를 비교
  if (!strcmpi(s3, s4)) {
    puts("(대소문자 구분 없을 때에는) 같군요");
  } else {
    puts("(대소문자 구분 없을 때에는) 다르군요");
  }
  // (대소문자 구분 없을 때에는) 같군요



  if (0) puts("0은 논리적으로 거짓이기에, 이 문장은 결코 출력되지 않습니다.");
  // warning C4127: conditional expression is constant 이런 경고가 나옵니다.

}


strcmp(), strcmpi() 함수는 2개의 문자열이 동일하면 0을 리턴합니다. 0은 논리적 거짓에 해당하기에, if문 뒤에 구문이 실행되지 않습니다. 그래서 앞에 느낌표(!)를 붙여서, 그 값을 뒤집어 주면 편리합니다.
위의 소스에서 if (0)...문 참고.

warning C4127: conditional expression is constant 이런 경고(워닝)는, 변수가 아닌 상수를 조건문에 사용했다는 경고입니다. 여기서는 무시해도 좋습니다. 컴파일러를 민감하게 설정하지 않으면 이 경고가 나오지 않을 것입니다.


☞ C/C++

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top