/ C, PROGRAMMING

C언어: <string.h> 함수 모음

<string.h> 함수 모음

strcpy(char* s1, const char* s2)

s2 가 가리키는 곳에 있는 문자열을 s1이 가리키는 곳에 복사한다. 리턴값은 s1이다.

strncpy(char* s1, const char*s2, size_t)

strcpy에 세 번째 인수 추가. 세 번째 인수에 들어온 메모리 크기(바이트)만큼만 s2가 가리키는 문자열을 s1에 복사한다.

strlen(const char*)

문자열 길이 리턴 (널 문자 제외)

strcat(char* s1, const char* s2)

s2가 가리키는 문자열을 s1이 가리키는 문자열의 끝에 이어붙인다. 리턴값은 s1이다.

strncat(): strcat의 안전하지만 더 느린 버전이다. 세 번째 인수에 복사할 메모리 크기를 입력한다. 보통 다음과 같이 사용한다.

strncat(s1,s2,sizeof(s1)-strlen(s1)-1);

s1 배열의 전체 길이에서 문자열 + 1만큼의 길이를 제함으로써, 남은 공간을 계산한다. 기존의 null문자를 덮어씌우면서 append가 진행되므로 1자리가 남는다. 복사할 문자열의 길이가 너무 길어서 짤릴 경우, 이 남은 1자리에 null문자가 남아있게 된다.

strtok(문자열, 분리자 문자열): 분리자를 기준으로 토큰을 추출한다

int strcmp(const char* s1, const char* s2)

문자열을 비교한다. (정렬용)

s1<s2일 경우 음수 리턴, s1==s2 일 경우 0 리턴, s1>s2일 경우 양수 리턴한다.

이때 비교 기준은 다음 규칙을 따른다.

  1. s1의 문자열이 s2의 일부와 불일치할 경우 ex) “abc” < “abd” 이다.

  2. s1의 문자열 전체가 s2와 일치할 경우, 문자열이 더 긴 쪽이 크다. ex) “abc” < “abce” 이다.

사전 순서대로 ‘오름차순’ 정렬하는 결과와 유사하다고 보면 된다.

단, 알파벳 대문자, 소문자와 숫자 등이 어떤 순서로 ASCII 코드페이지에 배치돼있는지 숙지하여야 한다.

0-9, A-Z, a-z는 각각 연속적으로 배치되어있다.

0-9< A-Z < a-z 이다.

공백 문자는 모든 출력 문자보다 작다. (' ' = 32)

strchr(): 문자열 내에서 문자를 찾는다.

strstr(전체 문자열, 부분 문자열) // 부분문자열을 찾는다

strchr(), strstr() 함수 모두 대상 문자 또는 문자열이 발견된 위치의 주소를 반환한다.