strcmp
오늘은 C언어에서 두 개의 문자열이 같은 문자열인지 비교하는 함수인 strcmp에 대해 알아보도록 하겠습니다.
이 함수는 두 개의 문자열이 같은지 다른지 비교하기 위해서 문자열 길이도 확인합니다.
왼쪽 오른쪽 문자열이 있다면 왼쪽 문자열 길이는 7인데 오른쪽 문자열의 길이가 5라면 이미 다르다는 게 판명되겠죠?
이러한 원리로 문자열이 같은지 검사하는 함수입니다.
간단하면서도 재미있는 strcmp에 대해 알아보겠습니다.
strcmp 함수 원형은?
strcmp 함수는 <string.h> 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다
int strcmp(const char *s1, const char *s2);
strcmp 인자는?
strcmp 함수는 두 개의 인자를 가집니다.
s1: 비교할 첫 번째 문자열의 시작 주소를 가리키는 포인터
s2: 비교할 두 번째 문자열의 시작 주소를 가리키는 포인터
이 인자들을 전달하여 문자열을 비교하게 됩니다.
strcmp 함수는 비교 결과에 따라 다른 정수값을 반환합니다.
반환 값이 0이면 두 문자열이 동일하다는 것이고, 양수인 경우 s1이 s2보다 크고 음수인 경우 s1이 s2보다 길이가 작다는 것을 의미합니다.
이런 결과를 통해 우리는 두 문자열이 같은지, 다른지 알 수 있습니다.
strcmp 언제 사용하나?
strcmp 함수는 두 문자열을 비교해야 할 때 사용됩니다.
두 문자열이 동일한지? 그리고 앞 문자열이 더 작은지 또는 더 큰지를 판단하고 빠르게 두 문자열을 비교해야 할 때 strcmp 함수를 사용할 수 있습니다.
문자열의 정렬, 문자열의 동일성 여부 확인 등에 유용하게 사용됩니다.
strcmp 다른 문자열과 모든 길이가 동일한지 확인하는 예제
다음은 strcmp 함수를 사용하여 다른 문자열과 모든 길이가 동일한지 확인하는 예제입니다.
#include <stdio.h>
#include <string.h>
int main() {
char s1[] = "Hello";
char s2[] = "Hello";
int r = strcmp(s1, s2);
if (r == 0) printf("두 문자열이 같습니다.\n");
else printf("두 문자열이 다릅니다.\n");
return 0;
}
위의 예제에서는 s1과 s2 문자열을 strcmp 함수를 사용하여 비교합니다.
비교 결과를 r 변수에 저장한 후, r이 0인지 확인하여 문자열이 동일한지 판단합니다.
결과적으로 "두 문자열이 같습니다."라는 메시지가 출력되는 것을 알 수 있습니다.
strcmp 다른 문자열의 앞 3글자만 동일한지 확인하는 예제
다음은 strcmp 함수를 사용하여 다른 문자열의 앞 3글자만 동일한지 확인하는 예제입니다.
#include <stdio.h>
#include <string.h>
int main() {
char s1[] = "Hello";
char s2[] = "Help!";
int r = strncmp(s1, s2, 3);
if (r == 0) printf("앞 3글자가 동일합니다.\n");
else printf("앞 3글자가 다릅니다.\n");
return 0;
}
위의 예제에서는 s1 s2 문자열의 앞 3글자를 strncmp 함수를 사용하여 비교합니다.
비교 결과를 r 변수에 저장한 후, r이 0인지 확인하여 앞 3글자가 동일한지 판단합니다.
결과적으로 "앞 3글자가 동일합니다."라는 메시지가 출력됩니다.
오늘은 두 문자열이 같은 문자열인지? 아니면 문자열의 길이가 서로 다른지 확인하는 strcmp에 대해 알아보았습니다.
문자열 길이를 통해 같은지 다른지 확인할 수 있다는 점은 빠른 비교 방법인 것 같습니다.