컴퓨터 엑셀 워드 포토숍 구글어스 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