JAVA기반 스마트웹 개발2021/프로그래밍 언어활용
문자열 비교 검색 라이브러리
Victory_Heo
2021. 8. 8. 17:09

문자열 비교 검색 라이브러리
문자열 처리 관련 라이브러리의 종류를 설명할 수 있다.
문자을 비교/검색하는 라이브러리 함수의 용도를 알고 구현할 수 있다.
라이브러리 함수 이해
1.종류 : 헤더 파일 : string.h(비교함수)
- memcmy : 메모리 블록을 비교
- strcmy : 문자열을 비교
- strncmy : 문자열 개수를 지정하여 비교
1.종류 : 헤더 파일 : string.h(검색함수)
- memchr : 메모리 블록에서 문자열 검색
- strchr : 문자열에서 찾는 문자의 첫 번째 위치
- strrchr : 문자열의 마지막에서부터 문자 위치 검색
- strspn : 문자열에서 특정 문자로 구성된 문자열의 길이
- strcspn : 문자열에서 특정 문자로 구성에 포함되지 않는 문자열의 길이
- strstr : 부분 문자열 위치
- strtok : 토큰으로 문자열 분리
라이브러리 함수 활용
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가 크다.
1.문자열 비교함수 : strcmp
- 함수원형 : int strcmp(const char*str1,const char*str2);
- 헤더 : string.h
- 기능 : 첫 번재 문자부터 차례로 바이트의 크기를 비교
- 매개변수 : char*str1 -> 비교할 대상 문자열
char*str2 -> 비교할 문자열 - 반환값 : 1 : str1 ! = str2
0 : str1 = str2
+ : 결과 값이면 str1 > str2
- : 결과 값이면 str1 < str2
1.문자열 비교함수 : strncmp
- 함수원형 : int strcmp(const char*str1,const char*str2,size_t num);
- 헤더 : string.h
- 기능 : 2개의 문자열을 지정한 문자 개수까지만 비교
- 매개변수 : char*str1 -> 비교할 대상 문자열
char*str2 -> 비교할 문자열
size_t n -> 비교할 문자의 개수 - 반환값 : 1 : str1 ! = str2
0 : str1 = str2
+ : 결과 값이면 str1 > str2
- : 결과 값이면 str1 < str2
2.문자열 검색함수 : 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을 반환
2.문자열 검색함수 : strrchr
- 함수원형 : char*strrchr(const char*str, int chr);
- 헤더 : string.h
- 기능 : 문자열에서 임의의 문자가 마지막으로 발견된 위치를 포인터로
반환(몇 번째 X) - 매개변수 : char*str-> 검사 대상 문자열
int chr -> 찾는 문자
- 반환값 : 찾고자 하는 문자가 발견된 마지막 위치의 포인터를 반환,
찾지 못하면 NULL을 반환
2.문자열 검색함수 : strspn
- 함수원형 : size_t strspn(const char*str1,const char*str2);
- 헤더 : string.h
- 기능 : -문자열에서 지정된 문자들로 구성된 초기 문자열의 길이를 검색
-검색 대상의 문자열에 대해 첫 번째 바이트로부터 차례대로
검색하면서 두 번째 인수의 문장 포함되는 문자인지를
확인
-두 번재 인수에 포함되지 않는 문자를 만나면 그 전까지의
문자열 길이를 반환 - 매개변수 : char*str-> 검사 대상 문자열
int chr -> 검색에 사용되는 문자들의 모임
- 반환값 : 문자열의 길이를 반환
2.문자열 검색함수 : strcspn
- 함수원형 : size_t strcspn(const char*str1,const char*str2);
- 헤더 : string.h
- 기능 : -문자열에서 지정된 문자들로 구성된 초기 문자열의 위치를 검색
-검색 대상의 문자열에 대해 첫 번째 바이트부터 차례대로
검색하면서 두 번째 인수의 문자열에 포함되는 문자인지를 확인
-2 번재 인수에 포함되는 문자를 만나면 그 전까지의 길이를 반환 - 매개변수 : char*str-> 검색 대상 문자열
int chr -> 검색에 사용되는 문자들의 모임
- 반환값 : 검색된 문자의 위치를 반환
2.문자열 검색함수 : strstr
- 함수원형 : char*strstr(const char*str1, const char*str2);
- 헤더 : string.h
- 기능 : 문자열에서 임의의 문자열이 시작하는 위치
- 매개변수 : char*str1 -> 검색 대상 문자열
char*str1 -> 찾는 문자열 - 반환값 : 찾고자 하는 문자열이 발견된 첫 번째 위치의 포인터를 반환,
찾지 못하면 NULL을 반환
2.문자열 검색함수 : strtok
- 함수원형 : char*strtok(char*str1, const char*delimiters);
- 헤더 : string.h
- 기능 : 문자열을 문자로 자르는 함수
- 매개변수 : char*str -> 검색 대상 문자열
char*delimiters -> 잘라내기 위한 문자 모임 - 반환값 : 잘라내기 한 문자열의 첫 번째 포인터를 반환,
문자열이 없다면 NULL을 반환
라이브러리 함수 이해
- 문자열 처리 관련 함수는 string.h를 include함
- 문자열을 복사하는 함수 : memcmp,strcmp,strncmp
- 문자열을 연결하는 함수 : memchr,strchr,strrchr,strspn,strcspn,strstr
- 문자열을 검색하여 분리하는 함수 : strtok
라이브러리 함수 활용
-
문자열 비교함수는 첫 번째 매개변수가 더 큰 값이면 양수, 같으면 0, 두 번째
매개변수가 크면 음수를 반환 - 문자열에서 특정 문자의 위치를 검색하는 함수 :strchr,strrchr
- 문자열에서 특정 문자열의 위치를 검색하는 함수 : strstr
- strtok()함수는 문자열을 토큰으로 분리