KDONG 2021. 8. 7. 13:21

학습내용

  • 라이브러리 함수 이해
  • 라이브러리 함수 활용

학습목표

  • 문자열 처리 관련 라이브러리의 종류를 설명할 수 있다.
  • 문자열을 비교.검색하는 라이브러리 함수의 용도를 알고 구현할 수 있다.

 

라이브러리 함수 이해

1. 종류

 1) 헤더파일 : string.h

  (1) 비교함수 

    - memcmp : 메모리 블록을 비교

    - strcmp : 문자열을 비교

    - strncmp : 문자열 개수를 지정하여 비교

  (2) 검색함수 

    - memchr : 메모리 블록에서 문자열 검색

    - strchr : 문자열에서 찾는 문자의 첫 번째 위치

    - strrchr : 문자열의 마지막에서부터 문자 위치 검색

    - strspn : 문자열에서 특정 문자로 구성된 문자열의 길이

    - strcspn : 문자열에서 특정 문자로 구성에 포함되지 않는 문자열의 길이

    - strstr : 부분 문자열 위치

    - strtok : 토큰으로 문자열 분리

 

라이브러리 함수 활용

1. 문자열 비교함수

 1) memcmp

항목 내용
함수원형 int memcmp ( const void * ptr1, const void * ptr2, size_t num );
헤더 string.h
기능 2개의 메모리 변수에 대해 내용을 비교
매개변수 void * ptr1 -> 비교 대상 메모리 포인터
void * ptr2 -> 비교할 메모리 포인터
size_t num -> 비교할 바이트 크기
반환값 양의 정수 : s1이 s2보다 크다.
0 : s1과 s2가 같다.
음싀 정수 : s1보다 s2가 크다.

 

 

 2) strcmp

항목 내용
반환값 1 : str1 ! = str2
0 : str1 = str2
+ : 결과 값이면 str1 > str2
- : 결과 값이면 str1 < str2

 

 3) strncmp

항목 내용
함수원형 int strncmp ( const char * str1, const char * str2, size_t num );
헤더 string.h
기능 2개의 문자열을 지정한 문자 개수까지만 비교
매개변수 void * str1 -> 비교할 대상 문자열
void * str2 -> 비교할 문자열
size_t num -> 비교할 문자의 개수
반환값 1 : str1 ! = str2
0 : str1 = str2
+ : 결과 값이면 str1 > str2
- : 결과 값이면 str1 < str2

 

2. 문자열 검색함수

 1) memchr

항목 내용
함수원형 void * memchr ( const void * s, int c, size_t n);
헤더 string.h
기능 메모리 영역에서 임의의 문자를 검색하고 있으면 그 위치의 포인터를 구함
매개변수 void * s -> 검사할 메모리의 포인터
int c -> 검사할 문자 코드
size_t n -> 검사할 영역의 크기
반환값 처음 발견된 위치의 포인터, 발견하지 못하면 NULL

 

 2) strchr

항목 내용
함수원형 char *strchr( const char *str, int chr)
헤더 string.h
기능 문자열에서 임의의 문자가 처음으로 발견된 위치
매개변수 char *str -> 검색 대상 문자열
int chr -> 찾는 문자
반환값 찾고자 하는 문자가 발견된 첫 번째의 포인터를 반환, 찾지 못하면 NULL을 반환

 

 3) strchr

항목 내용
함수원형 char *strrchr( const char *str, int chr);
헤더 string.h
기능 문자열에서 임의의 문자가 마지막으로 발견된 위치를 포인터로 반환(몇 번째 X)
매개변수 char *str -> 검색 대상 문자열
int chr -> 찾는 문자
반환값 찾고자 하는 문자가 발견된 마지막 위치의 포인터를 반환, 찾지 못하면 NULL을 반환

 

 4) strspn

항목 내용
함수원형 size_t strspn(const char *str1, const char *str2);
헤더 string.h
기능 * 문자열에서 지정된 문자들로 구성된 초기 문자열의 길이를 검색
* 검색 대상의 문자열에 대해 첫 번째 바이트부터 차례대로 검색하면서 두 번째 인수의 문자에 포함되는
  문자인지를 확인
* 두 번째 인수에 포함되지 않는 문자를 맊나면 그 전까지의 문자열 길이를 반환
매개변수 char *str1 -> 검색 대상 문자열
char *str2 -> 검색에 사용되는 문자들의 모임
반환값 문자열의 길이를 반환

 

 5) strcspn

항목 내용
함수원형 size_t strcspn(const char *str1, const char *str2);
헤더 string.h
기능 * 문자열에서 지정된 문자들로 구성된 초기 문자열의 위치를 검색
* 검색 대상의 문자열에 대해 첫 번째 바이트부터 차례대로 검색하면서 두 번째 인수의 문자열에 포함되는 
  문자인지를 확인
* 2번째 인수에 포함되는 문자를 맊나면 그전까지의 길이를 반환
매개변수 char *str1 -> 검색 대상 문자열
char *str2 -> 검색에 사용되는 문자들의 모임
반환값 검색된 문자의 위치를 반환

 

 6) strstr

항목 내용
함수원형 char *strstr( const char *str1, const char *str2)
헤더 string.h
기능 문자열에서 임의의 문자열이 시작하는 위치
매개변수 char *str1 -> 검색 대상 문자열
char *str2 -> 찾는 문자열
반환값 찾고자 하는 문자열이 발견된 첫 번째 위치의 포인터를 반환, 찾지 못하면 NULL을 반환

 

 7) strtok

항목 내용
함수원형 char * strtok ( char * str, const char * delimiters );
헤더 string.h
기능 문자열을 문자로 자르는 함수
매개변수 char *str -> 자르기 대상 문자열
char *delimiters -> 잘라내기 위한 문자 모임
반환값 잘라내기 한 문자열의 첫 번째 포인터를 반환, 문자열이 없다면 NULL을 반환

 

 

학습정리

 

1. 라이브러리 함수 이해

  • 문자열 처리 관련 함수는 string.h를 include함
  • 문자열 비교함수 : memcmp, strcmp, strncmp
  • 문자열 검색함수 : memchr, strchr, strrchr, strspn, strcspn, strstr
  • 문자열을 검색하여 분리하는 함수 : strtok

2. 라이브러리 함수 활용

  • 문자열 비교함수는 첫 번째 매개변수가 더 큰 값이면 양수, 같으면 0, 두 번째 매개변수가 크면 음수를 반환
  • 문자열에서 특정 문자의 위치를 검색하는 함수 : strchr, strrchr
  • 문자열에서 특정 문자열의 위치를 검색하는 함수 : strst
  • strtok()함수는 문자열을 토큰으로 분리