C 표준 라이브러리의 int strcmp(const char *str1, const char *str2) 함수는 str1이 가리키는 문자열과 str2가 가리키는 문자열을 서로 비교하는 역할을 합니다.
여기서 문자 배열을 흔히 '문자열(string)'이라고 부릅니다.
문자열 선언 방법
문자열은 다음과 같이 선언합니다.
char stringname [size];
예를 들어, char string[50];과 같이 선언하면 최대 50자 길이의 문자열을 저장할 수 있습니다.
문자열 초기화
문자열을 초기화하는 방법에는 두 가지가 있습니다.
1. 개별 문자 상수 사용
char string[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };2. 문자열 상수 사용
char string[10] = "Hello";
접근(Accessing) — 제어 문자 "%s"를 사용하면 널 종료 문자('\0')를 만날 때까지 문자열 전체를 읽거나 출력할 수 있습니다.
strcmp() 함수란?
두 개의 문자열을 서로 비교하는 함수입니다.
비교 결과로 두 문자열에서 처음으로 일치하지 않는 문자 쌍의 ASCII 코드 차이값을 반환합니다.
문자열 비교 규칙
함수의 기본 문법은 다음과 같습니다.
int strcmp (string1, string2);
반환되는 차이값에 따라 비교 결과를 판단할 수 있습니다.
차이값이 0인 경우 → string1 = string2 (두 문자열이 동일)
차이값이 양수인 경우 → string1 > string2 (첫 번째 문자열이 더 큼)
차이값이 음수인 경우 → string1 < string2 (첫 번째 문자열이 더 작음)
예제 프로그램 1
다음 프로그램은 strcmp() 함수의 기본적인 사용법을 보여줍니다.
#include<stdio.h>
main ( ){
char a[50], b [50];
int d;
printf ("enter 2 strings:\n");
scanf ("%s %s", a,b);
d = strcmp (a,b);
if (d==0)
printf("%s is equal to %s", a,b);
else if (d>0)
printf("%s is greater than %s",a,b);
else if (d<0)
printf("%s is less than %s", a,b);
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
enter 2 strings: bhanu priya bhanu is less than priya
예제 프로그램 2
이번에는 string.h 헤더 파일을 포함하여 strcmp 라이브러리 함수로 두 문자열을 비교하는 C 프로그램을 살펴보겠습니다.
#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 = strcmp(string1,string2);
//조건문 처리//
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);
}
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Enter String 1: Tutorials Enter String 2: Point Tutorials is greater than Point
정리
strcmp() 함수는 사전 순(lexicographical order)을 기준으로 두 문자열을 비교하며, 반환값의 부호를 통해 어느 문자열이 더 큰지 판단할 수 있습니다. 문자열 검색, 정렬, 입력값 검증 등 다양한 프로그래밍 상황에서 유용하게 활용되는 필수 함수이므로, 반환값의 의미를 정확히 이해하고 사용하는 것이 중요합니다.