strcmp, strncmp 문자열 비교 함수
C에서 문자열을 비교하는 함수가 있다.
바로 strcmp 와 ctrncmp이다.
함수의 리턴 값을 통해 문자열이 같은지 다른지 판단 할 수 있다.
문자열 길이 설정 여부에 따라 두 함수가 나누어 진다.
strcmp 일반 문자열 비교 |
strcmp 사용법은 아래와 같다.
#include<string.h> char * strcmp( const char * str1, const char * str2 ) ex) int result = 0; char * str1 = "hello world"; char * str2 = "hello world"; if( strcmp( str1, str2 ) == 0 ) { printf("두 문자열은 같다."); } else { printf("두 문자열은 같지 않다."); } |
리턴 값 |
의 미 |
0 보다 큰 값 |
str1이 str2보다 큰 경우 |
0 |
str1과 str2 일치 |
0 보다 작은 값 |
str1이 str2보다 작은 경우 |
두개의 문자열 str1, str2가 있다.
비교함수인 strcmp를 사용하여 확인 해보니 리턴 값이 0이 나왔다.
0이 나왔기 때문에 "두 문자열은 같다." 라는 메시지가 출력 된다.
예제를 보며 결과를 확인해 보자.
[예제]
#include <stdio.h> #include <string.h> //<--- strcmp 함수 사용을 위해 추가 한다. int main(int argc, char *argv[]) { int result = 0; char * str1 = "hello world"; char * str2 = "hello world";
if( strcmp( str1, str2 ) == 0 ) //<--- strcmp 결과 값이 0이면 두 문자열이 같고 그렇지 않으면 다르다. { printf("두 문자열은 같다."); } else { printf("두 문자열은 같지 않다."); } } |
실행 결과 두 문자열은 같다. 계속하려면 아무 키나 누르십시오... |
strncmp 지정 된 길이만큼 문자열 비교 |
strncmp 사용법은 아래와 같다.
#include<string.h> char * strncmp( const char * str1, const char * str2, size_t n ) ex) int result = 0; char * str1 = "hello man"; char * str2 = "hello world"; if( strncmp( str1, str2, 5 ) == 0 ) { printf("두 문자열은 같다."); } else { printf("두 문자열은 같지 않다."); } |
리턴 값 | 의 미 |
0 보다 큰 값 | str1이 str2보다 큰 경우 |
0 | str1과 str2 일치 |
0 보다 작은 값 | str1이 str2보다 작은 경우 |
두개의 문자열 str1, str2가 있다.
비교함수인 strcmp를 사용하여 확인 해보니 리턴 값이 0이 나왔다.
0이 나왔기 때문에 "두 문자열은 같다." 라는 메시지가 출력 된다.
예제를 보며 결과를 확인해 보자.
[예제]
#include <stdio.h> #include <string.h> //<--- strncmp 함수 사용을 위해 추가 한다. int main(int argc, char *argv[]) { int result = 0; char * str1 = "hello man"; char * str2 = "hello world";
if( strncmp( str1, str2, 5 ) == 0 ) //<--- strncmp 결과 값이 0이면 두 문자열이 같고 그렇지 않으면 다르다. { printf("두 문자열은 일부 같다."); } else { printf("두 문자열은 일부 같지 않다."); } } |
실행 결과 두 문자열은 일부 같다. 계속하려면 아무 키나 누르십시오... |
'프로그램 > C' 카테고리의 다른 글
[C] 간단한 FILE 구조체를 이용한 파일 읽기 (0) | 2018.01.20 |
---|---|
[C] 간단한 FILE 구조체를 이용한 파일 쓰기 (0) | 2018.01.19 |
[C] strcat, strncat 문자열 추가 함수 (0) | 2018.01.06 |
[C] strcpy, strncpy 문자열 복사 함수 (0) | 2018.01.05 |
[C] CodeBlock 무료툴 설치,설정,실행 방법 (0) | 2017.12.19 |