반응형
C 함수.
strcmp, strncmp 함수의 기능을 알아보자 !!
strcmp, strncmp 함수는 모두 두개의 문자열을 서로 비교해주는 기능을 합니다.
두 문자열의 비교를 통해 같다, 다르다 를 알수있고 어떤 문자열이 더 크고작은지도 알 수 있습니다.
( 여기서 말하는 문자열이 크다/작다고 표현하는건 아스키코드값의 우열을 말합니다. )
간단한 예제를 통해 사용 방법을 알아볼게요 ~ !
#include <stdio.h> #include <string.h> void print_result(int result) { // 결과값이 0 이라면 두 문자열이 같다는 결과코드 입니다. if(result == 0) printf("같다.\n"); // 결과값이 0 보다 큰 경우엔 좌측의 문자열이 더 크다는 뜻 입니다. else if(result > 0) printf("좌측이 더 크다.\n"); // 결과값이 0 보다 작은 경우엔 우측의 문자열이 더 크다는 뜻 입니다. else // result < 0 printf("우측이 더 크다.\n"); } int main() { int result = 0; // 동일한 문자열 비교. result = strcmp("TEST STRING", "TEST STRING"); // 비교하고자 하는 문자열 두개를 전달하면 끝. print_result(result); // 아스키코드의 합산이 우측 문자열이 더 큰 경우 비교. result = strcmp("TEST STRING", "tEST STRING"); print_result(result); // 아스키코드의 합산이 좌측 문자열이 더 큰 경우 비교. result = strcmp("tEST STRING", "TEST STRING"); print_result(result); // 앞 4자리가 동일한 문자열 비교. result = strncmp("TEST 111", "TEST 222", 4); /* 비교할 문자열을 인자값으로 사용하는 strcmp 함수와 다르게, strncmp 함수는 주소지의 첫번째 주소부터 3번째 인자값으로 전달해준 값의 길이만큼만 검사를해서 위와 같이 4를 보냈을 경우 0번 주소지부터 3번 주소지 까지 총 4자리의 주소지만을 비교해서 결과값을 돌려줍니다. 앞 4자리가 "TEST" 이니 동일한 문자열이라는 결과가 나오겠죠 ? */ print_result(result); return 0; }
결과 화면.
예제 소스에 적어둔 주석이 있으니 다른 설명은 생략 하도록 하겠습니다.
혹시 궁금하신 사항이나 이해가 안가는 부분이 있으시면 언제든지 댓글 주세요 ^^
추가사항 > 예제 소스에선 "TEST STRING" 이런식으로 문자열을 바로 넘겼지만,
char 배열 변수를 통해 넘기는것도 가능하니 참고 하세요 ~ !
반응형
'C/C++ > [C] 함수' 카테고리의 다른 글
[C 함수] strtok 함수를 이용한 문자열 검색. (0) | 2015.02.05 |
---|---|
[C 함수] stat 함수를 이용한 FILE SIZE 받아오기. (0) | 2015.02.02 |
[C 함수] 정수, 실수, 문자 등을 문자열로 !! ( sprintf ) (0) | 2014.07.02 |
[C 함수] memset 함수. (0) | 2014.05.28 |