ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • strcmp - 문자열 비교 함수
    C/문자열 함수 2020. 9. 4. 11:45

    1. strcmp 함수의 사용방법

    프로그램 실행결과

    strcmp함수가 반환한 값이 0이면 두 문자열이 같다.

    strcmp함수가 음의 정수를 반환한다는 의미는 두 문자열에 다른 문자가 존재할 뿐 아니라,

    처음으로 나오는 다른 문자를 비교해보면 str1의 문자코드가 str2의 문자코드보다 작음을 의미.

    쉽게 말해서, 사전 편찬 순서를 구하고 싶을 때 응용이 가능함을 알 수 있다.

    apple과 banana라는 두 문자열이 있다고 하면, 어떤 문자열이 앞설수있냐면 apple이다.

    사전 편찬 순서로 보면 a가 b보다 앞서기 때문이다.

     

    2. strcmp함수의 구현

    프로그램 실행결과

     

    3. 구현한 strcmp 함수의 분석

    위는 while문의 조건이다.

    _Str1과 _Str2가 모두 널 문자를 가리킬 때 이 while 문을 빠져 나오게 된다.

    즉, 앞에서부터 한 문자씩 비교해 나가다 둘 다 널 문자가 되었을 때 빠져 나오게 된다.

    빠져나오면 이어서 맨 마지막 문장에 의해 0을 반환한다.

    while 문을 빠져 나와 맨 마지막 문장까지 실행한다는 것은

    두 개의 문자열이 완전히 동일하다는 것을 의미 한다. 그래서 0을 반환한다.

    위의 if 조건은, 앞에서부터 한 문자씩 비교하다가

    _Str1이 가리키는 문자의 아스키코드 값이 _Str2가 가리키는 문자의 아스키코드 값보다 큰 경우,

    _Str2가 가리키는 문자열이 사전편찬 순서상 앞선다.

    따라서, 이 때에 1을 반환한다.

    위의 else if 문의 조건은,

    앞에서부터 한 문자씩 비교하다가 _Str2가 가리키는 문자의 아스키코드 값이 str1이 가리키는 문자의 아스키코드 값보다 큰 경우, _Str1이 가리키는 문자열이 사전편찬 순서상 앞선다.

    따라서, 이 때에 -1을 반환한다.

    위의 else문은,

    현재 _Str1_Str2가 가리키는 문자가 동일할 때 실행한다.

    다음 문자를 가리키도록 str1과 str2를 하나씩 증가시킨다. 그리고 다음 비교를 준비한다.

     

    4. 소스 파일

    main.c
    0.00MB

    'C > 문자열 함수' 카테고리의 다른 글

    ItoA  (0) 2020.09.04
    strtok  (0) 2020.09.04
    strcat - 문자열 붙이는 함수  (0) 2020.09.04
    strcpy - 문자열을 복사하는 함수  (0) 2020.09.04
    strlen - 문자열의 길이를 구하는 함수  (0) 2020.09.04

    댓글

Designed by Tistory.