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
Posted by 살레시오

댓글을 달아 주세요