C언어/C언어 예제

[C언어 소스] strcmp 함수 사용 예제 (문자열 비교)

언제나휴일 2016. 5. 4. 07:19
반응형

[C언어 소스] strcmp 함수 사용 예제 (문자열 비교)


//C언어 표준 라이브러리 함수 사용법 가이드

//int strcmp ( const char * str1, const char * str2 ); 문자열을  비교하는 함수

//문자열 배열에서 같은 이름을 찾아서 출력

 

#include <string.h>

#include <stdio.h>

 

int ehstrcmp(const char *str1, const char *str2)

{

    //*str1이 참이면서 *str1 *str2가 같으면 str1 str2를 다음 위치로 이동하는 것을 반복

    for (; *str1 && (*str1 == *str2); ++str1, ++str2);

    return *str1 - *str2;//*str1 *str2의 차이를 반환

}

 

int main (void)

{

    char names[5][20]={"홍길동","강감찬","을지문덕","이순신","유관순"};

    char query[20] = "";

    int i=0,ecount=0;

 

    printf("검색할 이름 : ");

    scanf_s("%s",query,sizeof(query));//검색할 이름 입력

    ecount = sizeof(names)/sizeof(names[0]);//원소의 개수 계산

 

    printf("== strcmp 함수 이용 ==\n");

    for(i=0; i< ecount;i++)

    {

        if(strcmp(names[i],query)==0)//같은 문자열을 찾을 때

        {

            break;//반복문 탈출(i ecount보다 작음)

        }

    }

 

    if(i<ecount)//i ecount보다 작으면

    {

        printf("인덱스 %d %s () 있습니다.\n",i, query);//찾은 결과 출력

    }

    else

    {

        printf("%s () 없습니다.\n",query);

    }

 

    printf("== ehstrcmp 함수 이용 ==\n");

    for (i = 0; i< ecount; i++)

    {

        if (ehstrcmp(names[i], query) == 0)

        {

            break;

        }

    }

    if (i<ecount)

    {

        printf("인덱스 %d %s () 있습니다.\n", i, query);

    }

    else

    {

        printf("%s () 없습니다.\n", query);

    }

    return 0;

}

 

출력

검색할 이름 : 이순신(입력)

== strcmp 함수 이용 ==

인덱스 3 에 이순신 이() 있습니다.

== ehstrcmp 함수 이용 ==

인덱스 3 에 이순신 이() 있습니다.


언제나 휴일 티스토리 바로가기

언제나 휴일 유튜브 채널 바로가기

반응형