본문 바로가기

Programming/C Programming

strcmp 함수의 모호한 return value

strcmp 함수는 스트링간 포함여부를 찾는데는 사용하기 어렵다. strstr 이나 strchar 를 사용해야 한다.

두 string 이 완전히 동일한지만 판단이 용이하다.


#include <stdio.h>

//#include <sys/mount.h>

#include <signal.h>

#include <stdlib.h>

#include <unistd.h>

#include <errno.h>

#include <sys/wait.h>

#include <fcntl.h>         // O_WRONLY

#include <string.h>        // strlen()


#define  BUFF_SIZE   1024


int main()

{

    const char* standard = "12345";

    const char* standard2 = "0123456";

    const char* wrong = "a12";

    const char* part = "234";


    int rst=0;

    rst = strcmp(standard, standard);

    printf("%s with %s = %d\n", standard, standard, rst);


    rst = strcmp(standard, wrong);

    printf("%s with %s = %d\n", standard, wrong, rst);



    rst = strcmp(wrong, standard);

    printf("%s with %s = %d\n", wrong, standard, rst);


    rst = strcmp(standard, part);

    printf("%s with %s = %d\n", standard, part, rst);


    rst = strcmp(part, standard);

    printf("%s with %s = %d\n", part, standard, rst);

   


    rst = strcmp(part, standard2);

    printf("%s with %s = %d\n", part, standard2, rst);

    return 0;

}


12345 with 12345 = 0

12345 with a12 = -48

a12 with 12345 = 48

12345 with 234 = -1

234 with 12345 = 1

234 with 0123456 = 2