반응형
반응형

문자열 비교 및 검색 함수

이번 시간에는 문자열을 검색하거나 비교할 때 유용한 strcmp, strstr, strchr 함수들을 알아보겠습니다. 이 함수들을 통해 문자열이 특정 패턴을 포함하는지 찾거나, 문자열이 서로 같은지를 비교할 수 있습니다. 각 함수의 함수 원형, 예제 코드, 실행 결과, 그리고 분석을 통해 자세히 알아보겠습니다.

 

 

문자열 비교 strcmp

strcmp는 두 문자열을 비교하여 같으면 0, 첫 번째가 작으면 음수, 크면 양수를 반환합니다.

 

함수 원형

int strcmp(const char *str1, const char *str2);

 

예제 

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "apple";
    char str2[] = "banana";

    int result = strcmp(str1, str2);

    printf("Comparison Result: %d\n", result);

    return 0;
}

 

실행 결과

Comparison Result: -1

 

str1이 str2보다 사전순으로 앞에 있어 음수 값이 반환됩니다. (사전순 = 아스키코드 크기 순)

 

 

문자열 검색1  strstr

strstr는 문자열 안에 다른 문자열이 포함되어 있는지 확인하고, 첫 번째 발생 위치의 포인터를 반환합니다.

 

함수 원형

char *strstr(const char *haystack, const char *needle);

 

예제

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strstr(str, "World");

    if (result) {
        printf("Substring found: %s\n", result);
    } else {
        printf("Substring not found.\n");
    }

    return 0;
}

 

실행 결과

Substring found: World!

 

strstr는 str에서 "World"를 찾아 해당 위치의 포인터를 반환합니다.

 

 

문자열 검색2 strchr

strchr는 문자열에서 특정 문자의 첫 번째 발생을 찾고, 그 위치의 포인터를 반환합니다.

 

함수 원형

char *strchr(const char *str, int c);

 

예제 

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strchr(str, 'W');

    if (result) {
        printf("Character found: %s\n", result);
    } else {
        printf("Character not found.\n");
    }

    return 0;
}

 

실행 결과

Character found: World!

 

strchr는 문자열 str에서 'W'의 첫 번째 위치를 찾고 그 위치의 포인터를 반환합니다.

반응형