[C언어 소스] 문자열 비교하는 함수 만들기

알고리즘

문자열 비교하기(str1:비교 대상 문자열1, str2: 비교 대상 문자열 2)

….반복(str이 가리키는 문자가 참이면서 str1과 str2가 가리키는 문자가 서로 같으면)

………str1과 str2를 다음 위치로 이동

….str1과 str2가 가리키는 문자의 차이 반환

문자열 비교 출력 화면

소스코드

//문자열 비교하는 함수 만들기
#include <stdio.h>
//사전식 비교: 사전에 앞에 나오는 단어가 작고 뒤에 나오는 단어가 크다고 판별
//차이가 없으면 0 반환
int mystrcmp(const char *str1, const char *str2);
int main(void)
{
    char names[5][20] =
    {
        "홍길동","강감찬","이순신","을지문덕","한석봉"
    };
    char name[20];
    int i = 0;
    int value;

    printf("검색할 이름 :");
    scanf_s("%s", name, sizeof(name));

    printf("사전식 비교: 사전에 앞에 나오는 단어가 작고 뒤에 나오는 단어가 크다고 판별\n");
    for (i = 0; i<5; i++)
    {
        value = mystrcmp(name, names[i]);
        if (value == 0)//차이가 없을 때
        {
            printf("인덱스 %d에서 %s를 찾았습니다. \n", i, name);
        }
        else
        {
            if (value>0)
            {
                printf("%s > %s \n", name, names[i]);
            }
            else
            {
                printf("%s < %s \n", name, names[i]);
            }
        }
    }


    return 0;
}

int mystrcmp(const char *str1, const char *str2)
{
    //str1이 가리키는 문자가 종료 문자나 str1과 str2가 가리키는 문자가 다를 때까지 반복
    for (; *str1 && (*str1 == *str2); str1++, str2++);
    return *str1 - *str2;
}