반응형
strcmp - 문자열 비교
strcmp (const char* str1, const char* str2)
str1과 str2를 비교.
*
strcmp는 문자열을 아스키코드값으로 변환하여 차례대로 비교.
그러므로,
str1이 더 크면 양수 반환.
str1과 str2가 같으면 0을 반환.
str1이 더 작으면 음수 반환.
*
예제1) - 반환값
*str1이 더 크면 양수 반환.
#include<stdio.h>
#include<string.h>
int main(void){
printf("str1이 str2보다 클때\n");
char str1[30] = "bbb";
char str2[30] = "aaa";
printf("\n반환값: %d\n",strcmp(str1,str2));
return 0;
}
결과
*str1과 str2가 같으면 0을 반환.
#include<stdio.h>
#include<string.h>
int main(void){
printf("str1과 str2가 같을때\n");
char str1[30] = "aaa";
char str2[30] = "aaa";
printf("\n반환값: %d\n",strcmp(str1,str2));
return 0;
}
결과
*str1이 더 작으면 음수 반환.
#include<stdio.h>
#include<string.h>
int main(void){
printf("str1이 str2보다 작을때\n");
char str1[30] = "aaa";
char str2[30] = "bbb";
printf("\n반환값: %d\n",strcmp(str1,str2));
return 0;
}
결과
*문자열은 '='으로 비교시, 문자열의 주소값을 비교하게됨.
아래 예제2에서는 str1과 str2의 주소값은 다르므로 different를 출력함. *
예제2)
#include<stdio.h>
#include<string.h>
int main(void){
char str1[30] = "코짜문";
char str2[30] = "코짜문";
printf(" == 으로 문자열 비교시\n");
if(str1 == str2){
// 문자열을 '=='으로 비교시 주소값을 비교하게됨.
printf("same\n");
} else{
printf("different\n");
}
printf("\n");
printf(" strcmp로 문자열 비교시\n");
if(strcmp(str1,str2)==0){ //strcmp이용
printf("same\n");
}else{
printf("different\n");
}
return 0;
}
결과
strcmp외의 자주 쓰이는 문자열 함수
strcpy를 알고싶다면 -
2021.04.12 - [C언어/C언어 문법] - C언어 - strcpy 문자열 복사하기/c언어 문자열 복사/strcpy예제/자주 쓰이는 문자열 함수 정리
strcat를 알고싶다면 -
2021.04.13 - [C언어/C언어 문법] - C언어 - strcat 문자열 연결/c언어 문자열 이어붙이기/strcat예제/자주 쓰이는 문자열 함수 정리
반응형
'C언어 > C언어 문법' 카테고리의 다른 글
C언어 - for문/C언어 for 반복문/C언어 for문/for 무한 반복문 - 예제 (0) | 2021.04.20 |
---|---|
C언어 - strlen 문자열 길이반환/c언어 문자열 길이반환/strlen예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.16 |
C언어 - strcat 문자열 연결/c언어 문자열 이어붙이기/strcat예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.13 |
C언어 - strcpy 문자열 복사하기/c언어 문자열 복사/strcpy예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.12 |
C언어 문법 - 열거형 (enum) 관련 간단한 예제/ 간단한 코드 (0) | 2021.03.18 |
댓글