문자열의 길이를 반환해주는 함수.(string + length)
size_t strlen(const char* _Str);
그냥 문자열을 매개변수로 넣으면 된다.
const char* temp = "good strlen!";
cout << "strlen(temp) : " << strlen(temp) << endl;
실행 결과.

문자열을 복사하는 함수.(string + copy)
strcpy_s(char* _Destination, rsize_t _SizeInBytes, char const* _Source);
제3 매개변수에서, 제2 매개변수 크기만큼의 문자열을, 제1 매개변수로 복사함.(string copy의 약어) 근데 사이즈는 제3 매개변수의 크기로 거의 정해져있는듯. 왜? 널문자 만날 때까지 복사해오기 때문. 만약 제2 매개변수의 크기가 제3 매개변수의 크기보다 작으면 버퍼가 너무 작다고 에러 뜨고, 크면 버퍼 오버런이 뜬다. 다시 말해서, 제3 매개변수의 일부분을 가져오는 건 불가능하다는 말.
그럼 const char*의 일부를 가져오고 싶은 경우는 어떻게 해야 하는가?
문자열을 이어붙이는 함수.(string concatenation)
strcat_s(char _Destination[_Size],const char *_Source);
strcat_s(char *_Destination,rsize_t _SizeInBytes, const char *_Source);
첫 번째 함수는, 제1 매개변수에 제2 매개변수를 이어붙임. 주의해야할 점은, 제1 매개변수의 널문자를 지우고 제2 매개변수를 붙인 다음에 널 문자를 다시 추가하기 때문에, 그만큼의 버퍼가 필요하다.
오버로딩된 두 번째 함수는 첫 번째 함수와 같은 기능을 하는데, 제2 매개변수로 제1 매개변수 길이 + 제3 매개변수 길이 + 1(널문자용) 넣어주면 된다.
예시.
char destination[20] = "destination";
const char* source = "source";
strcat_s(destination, source);
cout << destination << endl;
실행 결과.
