c++ 코드로 보는 - 문자열 비교(strcmp), 문자열 카피(strcpy)
문자열 비교(strcmp), 문자열 카피(strcpy) c++ 코드
#include <stdio.h>
//str1과 str2를 비교
int strcmp(const char *str1, const char *str2) {
        
        //첫번째 str의 마지막까지 확인
        while (*str1) {
                if (*str1 != *str2) break;
                ++str1;
                ++str2;
        }
        //0보다 크면 str1 > str2
        //0보다 작으면 str1 < str2
        //0이면 str1 == str2
        return *(const unsigned char*)str1 - *(const unsigned char*)str2;
}
//source를 dest에 복사
void strcpy(char *dest, char *source){
        
        //source가 있을 때 까지 dest에 복사
        while (*source) {
                *dest = *source;
                ++dest;
                ++source;
        }
}
int main() {
        char str1[] = "abcde";
        char str2[] = "zewdf";
        // output : -25 => str1 < str2
        printf("%d\n", strcmp(str1, str2));
        // output : 25 => str1 > str2
        printf("%d\n", strcmp(str2, str1));
        strcpy(str1, str2);
        // output : 0 => str1 == str2
        printf("%d\n", strcmp(str2, str1));
}
 

0 개의 댓글