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' 를 포함해서 계산해야되기 때문입니다.