Page 313 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 313

실습 8-8                                                 •완성 파일 chap08/str_len3.c
                         01  /*--- 문자열 s의 길이를 구하는 함수(버전 3) ---*/
                         02  int str_len (const char *s)
                         03  {
                         04    const char *p = s;
                         05    while (*s)
                         06      s++;
                         07    return s - p;
                         08  }




                        strlen 함수
                        C 언어 표준 라이브러리에는 문자열의 길이를 구하는 strlen 함수가 있습니다. 앞에서는 문자
                        열의 길이를 구하는 방법을 알아보기 위해 함수를 만들었는데 실제로는 다음과 같은 strlen
                        함수를 사용합니다.


                                 strlen 함수

                         헤더      #include <string.h>
                         형식      size_t strlen(const char *s);
                         해설      s가 가리키는 문자열의 길이를 구합니다.

                         반환값     구한 문자열의 길이를 반환합니다.



                         연습      Q4  실습 8-6, 실습 8-7, 실습 8-8의 str_len 함수를 strlen 함수처럼 동작하는 함수로 수정하
                         문제     세요. 또 수정한 함수들을 서로 비교해 보세요.




                        문자열에서 문자 검색하기

                        이번에는 실습 8-9를 통해 널 문자가 아닌 문자를 문자열에서 검색하는 과정을 살펴보겠습
                        니다.


                          실습 8-9                                                  •완성 파일 chap08/str_chr.c

                         01  /* 문자열에서 문자F를 검색하는 프로그램 */
                                                                                    실행 결과
                         02  #include <stdio.h>
                                                                            문자열 : SURROUND
                         03                                                 검색할 문자 : R
                         04  /*--- 문자열 s에서 문자 c를 검색하는 함수 ---*/              문자 'R'은(는) 3번째에 있습니다.
                         05  int str_chr (const char *s, int c)



                                                                                      08•문자열 검색  313
   308   309   310   311   312   313   314   315   316   317   318