7.13.2 문자열 관련 함수 string.h [gdoc] [smts]
문자열은 사용빈도가 높은 편에 속하기 때문에 C언어에서는 문자열을 제어하는 많은 함수를 지원하고 있다. 이러한 문자열을 제어하는 함수는 string.h 헤더화일에 포함되어 선언되어 있다. 자주 사용되는 함수를 다음 표에 정리하였다.
[표 5.7.1] string.h함수의 자주 사용되는 표준 함수들
함수 | 기능 | 반환값 |
strlen(ptr) | 문자열의 길이를 반환한다. | size_t |
strcpy(pDest, pSrc) | 문자열을 복사한다. | char * |
strcat(pDest, pSrc) | 문자열을 결합한다. | char * |
strcmp(ptr1, ptr2) | 두 문자열을 비교한다.(같다면 0을 반환) | int |
문자열의 길이를 반환하는 함수는 strlen()이다.
0507-01.c |
#include <stdio.h>#include <string.h>int main() {char s[] = "ABCDE";int len = strlen(s);printf("%d", len);} |
실행 결과 |
5 |
문자열을 복사하는 함수는 strcpy()이다. 첫 번째 포인터에 두 번째 문자열을 복사한다. strcat()함수는 두 문자열을 병합하는데 병합된 결과는 첫 번째 포인터에 저장된다.
0507-02.c |
#include <stdio.h>#include <string.h>int main() {char str1[20];strcpy(str1, "Hello ");char str2[] = "world!";char str3[10];strcpy(str3, str2);strcat(str1, str3); // str1과 str3를 합해서 str1에 저장printf("%s", str1);} |
실행 결과 |
Hello world! |
문자열 간 비교를 위해서는 strcmp()함수를 이용한다. 이 함수는 두 개의 문자열을 인자로 받아서 같다면 0을 반환하고 다를 경우에는 ASCII 코드를 비교하여 -1 혹은 +1을 반환한다. 그렇지만 주로 두 문자열이 같은지 다른지를 비교할 경우가 많다.
0507-03.c |
#include <stdio.h>#include <string.h>int main() {char str1[] = "abc";char str2[] = "bcd";char str3[] = "bcd";int ia = strcmp(str1, str2);int ib = strcmp(str2, str3);int ic = strcmp(str3, str1);printf("%d, %d, %d", ia, ib, ic);} |
실행 결과 |
-1, 0, 1 |
이와 같이 표준 함수를 이용하면 문자열을 손쉽게 조작할 수 있다.
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
4장 연습문제 풀이 동영상 (0) | 2016.05.31 |
---|---|
7.13.3 stdlib.h (0) | 2016.05.30 |
7.13.1 수학함수 math.h (0) | 2016.05.30 |
7.13 표준함수 (0) | 2016.05.30 |
7.10 지역배열과 전역배열 (0) | 2016.05.30 |