언어 자료구조 알고리즘/C언어 예제

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

언제나휴일 2016. 4. 3. 12:20
반응형

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



10. 문자열 비교.c


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

반복(str이 가리키는 문자가 참이면서 str1str2가 가리키는 문자가 서로 같으면)

    str1str2를 다음 위치로 이동

str1str2가 가리키는 문자의 차이 반환

 

소스코드

//문자열 비교하는 함수 만들기

#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;

}


문자열 길이 계산 함수 만들기

문자열 비교 함수 만들기

부분 문자열 비교 함수 만들기

문자열 복사 함수 만들기

부분 문자열 복사 함수

문자열 복사, 버퍼 오버플로우 방지

부분 문자열 복사, 버퍼 오버플로우 방지



반응형