C language - 4. string function(문자열 함수)

<string.h>의 헤더파일에는 문자열과 관련되있는 함수들을 정의하고 있습니다.


1. 문자열 복사

 문자열을 복사하는 함수에는 strcpy()와 strncpy()가 있습니다. strncpy() 함수에서 str3보다 1작은 크기만큼 복사해야하는데 문자열에는 마지막에는 반드시 null문자(\0)가 들어가야합니다.

문자열의 출력함수는 null문자가 나타날때까지 출력하는데 null문자를 넣을 공간을 만들어주지 않으면 출력함수는 null문자를 찾아 엉뚱한 영역의 값까지 출력해버립니다. 그러므로 마지막 열의 null값을 넣어 주어야 합니다.

null값을 무시하여 짠 출력결과
null값을 넣어준 출력결과


2. 문자열 덧붙임

문자열을 덧붙이는 strcat()와 strncat()입니다. 문자열을 덧붙일때는 아래의 그림과 같이 null문자의 자리부터 덧붙여집니다.
strncat()함수는 덧붙일 문자열에서 원하는 수만큼만 덧붙게 해줍니다.


3. 문자열 비교

문자열의 비교는 두 문자열을 한 문자씩 비교하여 결정합니다. 비교했을 때 반환되는 값은 아래의 표와 같이 나오게 됩니다.
이 때 문자열의 크고 작음을 비교하는 기준은 아스키코드값을 토대로 일어나게 됩니다. 예를 들어 문자열 "ABC"와 "ACD"를 비교할때 먼저 A는 서로 같기 때문에 다음 문자로 넘어갑니다. B와 C를 비교할때는 아스키 코드값이 C가 더 크므로 strcmp 함수는 0보다 큰 값을 반환하게 됩니다.


4. 문자열 길이

문자열의 길이를 반환하는 strlen() 함수는 문자열의 null값을 제외한 길이를 반환합니다.
위의 예제에서 문자열은 7의 공간을 차지하고 있지만 null값을 제외하여 6의 값이 반환됩니다.


5. 문자열 분리

strtok() 함수는 매개변수로 문자열과 분리하는 구분자를 받습니다. 분리하는 구분자는 큰따옴표("")안의 문자 혹은 띄어쓰기로 해당되는 문자의 이전 문자까지만을 반환합니다. 이후 매개변수로 받았던 문자열은 처음 자른 문자열로 바뀌고 자르고 남은 문자열은 NULL에 전달되며 더이상 없다면 NULL을 반환합니다.

출력결과