Page 314 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 314
06 {
07 int i = 0;
08 c = (char)c;
09 while(s[i] != c) {
10 if(s[i] == '\0') /* 검색 실패 */
11 return -1;
12 i++;
13 }
14 return i; /* 검색 성공 */
15 }
16 int main (void)
17 {
18 char str[64]; / * 이 문자열에서 검색 */
19 char tmp[64];
20 int ch; /* 검색할 문자 */
21 int idx;
22
23 printf("문자열 : ");
24 scanf("%s", str);
25
26 printf("검색할 문자 : ");
27 scanf("%s", tmp); /* 먼저 문자열로 검색할 문자를 읽어 들입니다. */
28 ch = tmp[0]; /* 첫 번째 문자를 검색할 문자로 지정합니다. */
29
30 if((idx = str_chr(str, ch)) == -1) /* 처음 나오는 문자를 검색합니다. */
31 printf("문자 '%c'은(는) 문자열에 없습니다.\n", ch);
32 else
33 printf("문자 '%c'은(는) %d번째에 있습니다.\n", ch, idx + 1);
34
35 return 0;
36 }
str_chr 함수는 문자열 s에서 문자 c를 선형 검색하 문자 'R'을 선형 검색합니다.
0 1 ❷ 3 4 5 6 7 8 9
고 검색에 성공하면 찾은 문자의 인덱스를 반환합니 S U R R O U N D Ø
다. 이때 같은 문자가 여러 개 있는 경우 가장 앞쪽에
[그림 8-6] 문자열에서 문자를 검색하는 과정
있는 문자의 인덱스를 반환합니다. 검색에 실패할
경우 –1을 반환합니다. 그림 8-6은 문자열 "SURROUND"에서 문자 'R'을 검색하는 과정을
나타낸 것입니다. 검색에 성공한 str_chr 함수는 찾은 요소의 인덱스 값인 2를 반환합니다.
314 C 알고리즘