JAVA기반 스마트웹 개발2021/프로그래밍 언어활용

문자열 비교 검색 라이브러리

Victory_Heo 2021. 8. 8. 17:09

문자열 비교 검색 라이브러리

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

라이브러리 함수 이해

1.종류 : 헤더 파일 : string.h(비교함수)
  1. memcmy : 메모리 블록을 비교
  2. strcmy : 문자열을 비교
  3. strncmy : 문자열 개수를 지정하여 비교
1.종류 : 헤더 파일 : string.h(검색함수)
  1. memchr : 메모리 블록에서 문자열 검색
  2. strchr : 문자열에서 찾는 문자의 첫 번째 위치
  3. strrchr : 문자열의 마지막에서부터 문자 위치 검색
  4. strspn : 문자열에서 특정 문자로 구성된 문자열의 길이
  5. strcspn : 문자열에서 특정 문자로 구성에 포함되지 않는 문자열의 길이
  6. strstr : 부분 문자열 위치
  7. strtok : 토큰으로 문자열 분리

라이브러리 함수 활용

1.문자열 비교함수 : memcmp
  1. 함수원형 : int memcmp(const void*ptr1,const void*ptr2,size_t num);
  2. 헤더 : string.h
  3. 기능 : 2개의 메모리 변수에 대해 내용을 비교
  4. 매개변수 : void*ptr1 -> 비교 대상 메모리 포인터
    void*ptr2 -> 비교할 메모리 포인터
    size_t num -> 비교할 바이트 크기
  5. 반환값 : 양의 정수 : s1이 s2보다 크다.
    0 : s1과s2가 같다.
    음의 정수 : s1보다 s2가 크다.
1.문자열 비교함수 : strcmp
  1. 함수원형 : int strcmp(const char*str1,const char*str2);
  2. 헤더 : string.h
  3. 기능 : 첫 번재 문자부터 차례로 바이트의 크기를 비교
  4. 매개변수 : char*str1 -> 비교할 대상 문자열
    char*str2 -> 비교할 문자열
  5. 반환값 : 1 : str1 ! = str2
    0 : str1 = str2
    + : 결과 값이면 str1 > str2
    - : 결과 값이면 str1 < str2
1.문자열 비교함수 : strncmp
  1. 함수원형 : int strcmp(const char*str1,const char*str2,size_t num);
  2. 헤더 : string.h
  3. 기능 : 2개의 문자열을 지정한 문자 개수까지만 비교
  4. 매개변수 : char*str1 -> 비교할 대상 문자열
    char*str2 -> 비교할 문자열
    size_t n -> 비교할 문자의 개수
  5. 반환값 : 1 : str1 ! = str2
    0 : str1 = str2
    + : 결과 값이면 str1 > str2
    - : 결과 값이면 str1 < str2
2.문자열 검색함수 : memchr
  1. 함수원형 : void*memchr(const void*s,int c, size_t n);
  2. 헤더 : string.h
  3. 기능 : 메모리 영역에서 임의의 문자를 검색하고 잇으면 그 위치의 포인터를 구함
  4. 매개변수 : void*s -> 검사할 메모리의 포인터
    int c -> 검사할 문자 코드
    size_t n -> 검사할 영역의 크기
  5. 반환값 : 처음 발견된 위치의 포인터, 발견하지 못하면 NULL
2.문자열 검색함수 : strchr
  1. 함수원형 : char*strchr(const char*str, int chr);
  2. 헤더 : string.h
  3. 기능 : 문자열에서 임의의 문자가 처음으로 발견된 위치
  4. 매개변수 : char*str-> 검사 대상 문자열
    int chr -> 찾는 문자
  5. 반환값 : 찾고자 하는 문자가 발견된 첫 번째의 포인터를 반환,
    찾지 못하면 NULL을 반환
2.문자열 검색함수 : strrchr
  1. 함수원형 : char*strrchr(const char*str, int chr);
  2. 헤더 : string.h
  3. 기능 : 문자열에서 임의의 문자가 마지막으로 발견된 위치를 포인터로
    반환(몇 번째 X)
  4. 매개변수 : char*str-> 검사 대상 문자열
    int chr -> 찾는 문자
  5. 반환값 : 찾고자 하는 문자가 발견된 마지막 위치의 포인터를 반환,
    찾지 못하면 NULL을 반환
2.문자열 검색함수 : strspn
  1. 함수원형 : size_t strspn(const char*str1,const char*str2);
  2. 헤더 : string.h
  3. 기능 : -문자열에서 지정된 문자들로 구성된 초기 문자열의 길이를 검색
    -검색 대상의 문자열에 대해 첫 번째 바이트로부터 차례대로
    검색하면서 두 번째 인수의 문장 포함되는 문자인지를
    확인
    -두 번재 인수에 포함되지 않는 문자를 만나면 그 전까지의
    문자열 길이를 반환
  4. 매개변수 : char*str-> 검사 대상 문자열
    int chr -> 검색에 사용되는 문자들의 모임
  5. 반환값 : 문자열의 길이를 반환
2.문자열 검색함수 : strcspn
  1. 함수원형 : size_t strcspn(const char*str1,const char*str2);
  2. 헤더 : string.h
  3. 기능 : -문자열에서 지정된 문자들로 구성된 초기 문자열의 위치를 검색
    -검색 대상의 문자열에 대해 첫 번째 바이트부터 차례대로
    검색하면서 두 번째 인수의 문자열에 포함되는 문자인지를 확인
    -2 번재 인수에 포함되는 문자를 만나면 그 전까지의 길이를 반환
  4. 매개변수 : char*str-> 검색 대상 문자열
    int chr -> 검색에 사용되는 문자들의 모임
  5. 반환값 : 검색된 문자의 위치를 반환
2.문자열 검색함수 : strstr
  1. 함수원형 : char*strstr(const char*str1, const char*str2);
  2. 헤더 : string.h
  3. 기능 : 문자열에서 임의의 문자열이 시작하는 위치
  4. 매개변수 : char*str1 -> 검색 대상 문자열
    char*str1 -> 찾는 문자열
  5. 반환값 : 찾고자 하는 문자열이 발견된 첫 번째 위치의 포인터를 반환,
    찾지 못하면 NULL을 반환
2.문자열 검색함수 : strtok
  1. 함수원형 : char*strtok(char*str1, const char*delimiters);
  2. 헤더 : string.h
  3. 기능 : 문자열을 문자로 자르는 함수
  4. 매개변수 : char*str -> 검색 대상 문자열
    char*delimiters -> 잘라내기 위한 문자 모임
  5. 반환값 : 잘라내기 한 문자열의 첫 번째 포인터를 반환,
    문자열이 없다면 NULL을 반환

라이브러리 함수 이해

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

라이브러리 함수 활용

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