Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 strncmp 라이브러리 함수로 두 문자열 비교하기 – 예제 코드 완벽 정리


strncmpstring.h 헤더 파일에 미리 정의되어 있는 표준 라이브러리 함수로, 두 개의 문자열을 비교하여 어느 문자열이 더 큰지 판별할 때 사용됩니다.

strcmp 함수란? (문자열 비교)

strcmp 함수는 두 문자열 전체를 비교하는 함수입니다. 두 문자열을 왼쪽부터 한 문자씩 비교하다가 처음으로 서로 일치하지 않는 두 문자를 만나면, 해당 문자들의 ASCII 코드 값 차이를 결과로 반환합니다.

구문

int strcmp (string1, string2);
  • 반환값이 0이면 → string1 = string2 (두 문자열이 동일함)

  • 반환값이 양수이면 → string1 > string2 (string1이 더 큼)

  • 반환값이 음수이면 → string1 < string2 (string1이 더 작음)

비교 예시

C 언어 strncmp 라이브러리 함수로 두 문자열 비교하기 – 예제 코드 완벽 정리

strncmp 함수란?

strncmp 함수는 두 문자열의 처음 'n'개 문자만 비교하는 함수입니다. strcmp와 달리 비교할 문자 수를 직접 지정할 수 있어, 문자열의 앞부분 일부만 확인하고 싶을 때 특히 유용합니다.

구문

strncmp (string1, string2, n)

예를 들어 strncmp(string1, string2, 4)처럼 작성하면 두 문자열의 첫 4개 문자만 비교하게 됩니다.

예제 프로그램

#include<stdio.h>
#include<string.h>
void main(){
    //두 개의 문자열 선언//
    char string1[25],string2[25];
    int value;
    //문자열 1과 문자열 2 입력받기//
    printf("Enter String 1: ");
    gets(string1);
    printf("Enter String 2: ");
    gets(string2);
    //라이브러리 함수를 이용한 비교//
    value = strncmp(string1,string2,4);
    //비교 결과에 따른 조건 처리//
    if(value==0){
        printf("%s is same as %s",string1,string2);
    } else if(value>0) {
        printf("%s is greater than %s",string1,string2);
    } else {
        printf("%s is less than %s",string1,string2);
    }
}

참고: 위 예제에서 사용된 gets() 함수는 버퍼 오버플로우 보안 위험 때문에 현재는 사용이 권장되지 않습니다. 실무 환경에서는 fgets() 함수를 사용하여 안전하게 문자열을 입력받는 것이 좋습니다.

실행 결과

Enter String 1: Tutorials
Enter String 2: Point
Tutorials is greater than Point

위 실행 결과에서 strncmp 함수는 두 문자열의 첫 4글자를 비교합니다. 첫 글자인 'T'(ASCII 84)가 'P'(ASCII 80)보다 크기 때문에 "Tutorials is greater than Point"라는 결과가 출력됩니다.