Page 317 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 317
는 값도 컴퓨터 환경에 종속적입니다. 예를 들어, 'N'이 'K'보다 큰 경우 1을 반환하는 컴퓨터
환경도 있고 문자 코드 값의 차이인 'N' - 'K'의 값을 그대로 계산하여 반환하는 컴퓨터 환경
도 있습니다.
실습 8-10은 strcmp 함수와 동일하게 동작하는 문자열 비교 함수를 작성한 프로그램입니다.
실습 8-10 •완성 파일 chap08/str_cmp.c
01 /* 문자열을 비교하는 프로그램 */
실행 결과
02 #include <stdio.h>
"ABCD"와 비교합니다.
03
"XXXX"면 종료합니다.
04 /*--- 두 문자열 s1과 s2를 비교하는 함수 ---*/ 문자열 st : AX
05 int str_cmp (const char *s1, const char *s2) str_cmp("ABCD", st) = -22
06 { 문자열 st : AA
07 while(*s1 == *s2) { str_cmp("ABCD", st) = 1
문자열 st : ABCD
08 if(*s1 == '\0') /* 같음 */
str_cmp("ABCD", st) = 0
09 return 0;
문자열 st : XXXX
10 s1++;
11 s2++;
12 }
13 return (unsigned char)*s1 - (unsigned char)*s2;
14 }
15 int main (void)
16 {
17 char st[128];
18 puts("\"ABCD\"와 비교합니다.");
19 puts("\"XXXX\"면 종료합니다.");
20 while(1) {
21 printf("문자열 st : ");
22 scanf("%s", st);
23 if(str_cmp("XXXX", st) == 0)
24 break;
25 printf("str_cmp(\"ABCD\", st) = %d\n", str_cmp("ABCD", st));
26 }
27
28 return 0;
29 }
이 프로그램은 문자열 "ABCD"와 입력한 문자열을 비교합니다. strcmp 함수와 마찬가지로
두 문자열이 다를 때 위의 str_cmp 함수가 반환하는 값은 문자 코드 체계에 따라 다릅니다.
08•문자열 검색 317