C언어 문자열 처리

2022. 1. 6. 10:16C&C++

<string.h>

 

1. strlen : 문자열 길이 반환

원형 : size_t strlen(const char *_Str)

(size_t는 unsigned int로 define 되어있다.)

구현: 문자열 시작지점부터 한 바이트씩 세면서 NULL이 나올 때까지의 길이를 구함.

 

2. strcpy : 문자열 복사

원형 : char* strcpy(char* _Destination, const char* _Source)

- 반환값은 _Destination의 포인터 값이다.

원형 : errno_t strcpy_s(char* _Destination, rsize_t SizeInBytes, const char* _Source)

(rsize_t는 size_t로 define, errno_t는 int로 define 되어있다.)

반환값 errno_t는 0일 때 success. 자세한 내용은 msdn 참고.

https://docs.microsoft.com/en-us/cpp/c-runtime-library/errno-doserrno-sys-errlist-and-sys-nerr?redirectedfrom=MSDN&view=msvc-170 

구현: 원본 메모리에서 NULL을 만날 때까지 복사한다.

 

3. strcmp : 문자열 비교

원형 : int strcmp(const char* _Str1, const char* _Str2)

반환값은 0일때 문자열이 같은 것.

구현: NULL전까지 두 문자열의 아스키코드를 비교해서 끝까지 같으면 0 return.

 

4. strcat : 문자열 붙이기

원형 : char* strcat(char* _Destination, const char* _Source)

- 반환값은 _Destination의 포인터 값이다.

원형 : errno_t stract_s(char* _Destination, rsize_t _SizeInBytes, const char* _Source)

구현: _Destination의 NULL부분부터 _Source의 내용을 복사한다.

 

5. strchr : 문자열에서 문자 검색

원형 : char* strchr(char* _String, int _Ch)

- 반환값은 해당 문자(_Ch)를 문자열에서 찾은 경우 해당 문자의 포인터. 찾지 못했을경우 NULL

구현: 해당 문자열에서 문자를 차례대로 찾고, 발견하면 해당 주소값 return.

문자열 끝(NULL)까지 찾지 못했을 경우 NULL return

 

6. strstr : 문자열에서 문자열 검색

원형 : char* strstr(char* _String, const char* _SubString)

- 반환값은 _String에서 _SubString과 일치하는 부분을 찾았을 경우 그 시작 지점. 찾지 못했을 경우 NULL

구현: _String에서 _SubString과 비교해서 같은 것이 있는지 찾고, 발견하면 그 시작지점 return,

문자열 끝까지 찾지 못했을 경우 NULL return

 

7. strlwr : 문자열 소문자 변환

원형 : char* _strlwr(char* _String)

- 반환값은 _String의 주소값.

원형 : errno_t _strlwr_s(char* _String, size_t _Size)

구현: 문자열을 NULL 이전까지 순회하면서 대문자 구간의 아스키코드를 소문자 구간으로 변경 시켜줌.

 

'C&C++' 카테고리의 다른 글

[C/C++] 파일 패킹  (0) 2022.01.06
[C/C++] 파일 입출력  (0) 2022.01.06
C/C++ 시간을 측정하기  (0) 2022.01.06
랜덤을 구현하는 방법  (0) 2021.11.07
#pragma once  (0) 2021.10.25