Notice
Recent Posts
Recent Comments
Link
생선이의 잡다한 블로그
C언어 강좌 24 - 문자열을 비교해보자! strcmp strncmp string.h 본문
반응형
안녕하세요 생선스프입니다!
이번에는 문자열을 비교하는 법을 알아보려고 합니다
그냥 (문자열1 == 문자열2) 이렇게 비교하면 될거라고 생각하실 수 있습니다
한번 직접 해보죠
아래와 같이 코드를 입력해 보겠습니다.
1 2 3 4 5 6 7 8 | #include <stdio.h> void main() { char s1[] = "HELLO"; char s2[] = "HELLO"; s1 == s2 ? puts("두 값이 일치합니다") : puts("두 값이 일치하지 않습니다"); } | cs |
실행을 시켜보면 "두 값이 일치하지 않습니다" 가 나오게 됩니다
그 이유는 s1 과 s2 에는 이 문자열이 저장되있는 주소가 저장되어 있기 때문입니다.
즉 s1 과 s2 는 서로 다른 변수이기 때문에 다른 주소값을 가지고 있어 일치하지 않게 됩니다.
그래서 string.h 파일에 있는 함수인 strcmp 와 strncmp 를 이용하여 비교합니다.
우선 strcmp를 먼저 알아보겠습니다.
strcmp는 strcmp(문자열1, 문자열2) 이렇게 사용하며
두 값이 일치하면 0을 반환
앞의 값이 더 크면 양수 반환
뒤의 값이 더 크면 음수 반환
아래와 같이 코드를 입력해 보겠습니다.
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> #include <string.h> void main() { char s1[] = "HELLO"; char s2[] = "HELLO"; !strcmp(s1,s2) ? puts("두 값이 일치합니다") : puts("두 값이 일치하지 않습니다"); } | cs |
이렇게 하고 실행을 시켜보면 드디어 "두 값이 일치합니다" 가 출력됩니다
다음은 strncmp 입니다.
strcmp와 다른점은 strncmp는 비교할 길이만큼 비교를 합니다.
strncmp는 strncmp(문자열1, 문자열2, 비교할길이) 이렇게 사용합니다
아래와 같이 코드를 입력해 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> #include <string.h> void main() { char s1[] = "ABCDDD"; char s2[] = "ABCEEE"; !strncmp(s1,s2,3) ? puts("두 값의 앞의 세 자리가 일치합니다") : puts("두 값의 앞의 세 자리가 일치하지 않습니다"); } | cs |
이렇게 하면 앞의 세 자리 글자는 ABC 로 동일하므로 일치하다고 출력이 나오게 됩니다.
그럼 이상으로 강좌 마치도록 하겠습니다.
공감과 댓글은 생선에게 힘이됩니다!
반응형
'프로그래밍 > C언어 강좌' 카테고리의 다른 글
C언어 강좌 26 - 값을 넣어보자! strcpy string.h (0) | 2017.12.08 |
---|---|
C언어 강좌 25 - 문자열의 길이를 알아보자! strlen string.h (0) | 2017.12.07 |
C언어 강좌 22 - 변수의 범위! 지역변수 전역변수 (0) | 2017.12.05 |
C언어 강좌 23 - 기능이 담긴 함수를 만들어 사용하자! (0) | 2017.12.05 |
C언어 강좌 19 - 반복 하자! while 문 (0) | 2017.12.04 |
Comments