Programming/C,C++

string.h에 대한 연구

홍열 2012. 10. 29. 09:13
728x90

2012.10.29

오늘은 strlen과 strcpy에 대해서 쓸까 합니다.


1. strlen

size_t strlen(const char *s)

입력 파라미터가 const char *s이며, 결과값은 문자열의 길이입니다. 즉, '\0' 만나기 전까지의 길이를 계산합니다. 

ex)

cha pSource[] = "ABC";

size = strlen(pSource);


결과는 3입니다. 

0 1 2 3  

A B C \0


'\0'전인 C의 위치까지의 길이를 계산해서 넘겨줍니다. 

다만, 이 함수를 쓸때는 먼저 문자열의 NULL여부를 검사해주세요. 

NULL이면 강제 종료된답니다.

2. strcpy


strcpy는 char문자열을 복사하는 함수입니다.

strcpy(dest, source)

역시 말보다는 예제를 보면서 설명이 쉽겠네요.

ex)

cha pSource[] = "ABC";

char *pDeststr = NULL;

if(pSource != NULL)
{
   int size = strlen(pSource);
   pDeststr = (char*) malloc (sizeof(char)* (size+1));
   if(pDeststr != NULL)
   { 
       strcpy(pDeststr, pSource);
   }
}
여기서 중요한건 malloc를 했을 때, size+1을 해주는 겁니다. 
이유는 맨 마지막에 '\0' 를 포함해서 계산해야되기 때문입니다.