두 문자열 str1과 str2가 주어졌을 때, 이 두 문자열이 서로 같은지 확인하는 것이 이번 글의 목표입니다. 예를 들어 "hello"와 "hello"처럼 완전히 동일하다면 두 문자열은 같은 것입니다.
여기서 중요한 구분이 있습니다. "Hello"와 "hello"처럼 겉보기에는 비슷하지만 대소문자 차이 때문에 실제로는 다른 문자열이 있고, "World"와 "World"처럼 모든 문자가 정확히 일치하는 진짜 '같은' 문자열이 있습니다. strcmp() 함수는 이러한 대소문자까지 엄격하게 구분합니다.
예제
Input: str1[] = {"Hello"}, str2[] = {"Hello"}
Output: Yes 2 strings are same
Input: str1[] = {"world"}, str2[] = {"World"}
Output: No, 2 strings are not same문제 해결 접근 방법
C 언어에서는 strcmp() 함수를 사용하여 두 문자열을 손쉽게 비교할 수 있습니다.
strcmp()(string compare)는 표준 헤더 파일인 string.h에 포함된 내장 함수입니다. 이 함수는 문자열 두 개를 매개변수로 받아 다음과 같이 동작합니다.
- 두 문자열이 완전히 같으면 0을 반환합니다.
- 두 문자열이 다르면 0이 아닌 값을 반환합니다.
- 함수는 대소문자를 구분(case-sensitive)하므로, 두 문자열이 같다고 판정되려면 모든 문자가 정확히 일치해야 합니다.
따라서 해결 순서는 다음과 같습니다.
- 두 문자열을 입력받거나 초기화합니다.
- strcmp() 함수에 두 문자열을 인자로 전달하여 호출합니다.
- 반환값이 0이면 "Yes 2 strings are same"을 출력합니다.
- 그렇지 않으면 "No, 2 strings are not same"을 출력합니다.
알고리즘
Start
In function int main(int argc, char const *argv[])
Step 1-> Declare and initialize 2 strings string1[] and string2[]
Step 2-> If strcmp(string1, string2) == 0 then,
Print "Yes 2 strings are same\n"
Step 3-> else
Print "No, 2 strings are not same\n"
Stop예제 코드
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[]) {
char string1[] = {"tutorials point"};
char string2[] = {"tutorials point"};
// strcmp() 함수를 사용해 두 문자열을 비교합니다.
if (strcmp(string1, string2) == 0)
printf("Yes 2 strings are same\n");
else
printf("No, 2 strings are not same\n" );
return 0;
}실행 결과
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.
Yes 2 strings are same