#1. strcpy_s
-> 문자열 복사 함수
( c에서는 strcpy로 사용을 하였지만 c++로 넘어오면서 strcpy_s로 바뀌었다.)
strcpy_s(목적지, 크기, 출발지)
목적지
-> 어디에 복사를 할 것인지 복사 받을 메모리의 시작 주소를 전달
크기
-> 얼마만큼 복사를 수행할 것인지 크기를 전달(byte 단위)
출발지
-> 어디에 있는 데이터를 복사할지 시작 주소를 전달
#2. strcat_s
-> 문자열 결합
-> 기존 문자열 뒤에 문자를 이어 붙인다.
strcat_s(목적지, 크기, 출발지)
목적지
-> 이어붙일 메모리의 시작 주소
크기
-> 얼마만큼 수행할 것인지 크기를 전달(byte 단위)
출발지
-> 어디에 있는 데이터를 이어붙일지 시작 주소를 전달
char szDst[20] = "Hello";
char szSrc[20] = "World";
cout << szDst << endl;
cout << szSrc << endl;
cout << "-------------------------" << endl;
strcat_s(szDst, 20, szSrc);
cout << szDst << endl;
cout << szSrc << endl;
#3. strlen
-> 문자열의 길이를 반환하는 함수.
-> 단, NULL문자를 제외한 순수 문자열의 길이만 반환
char szBuff[20] = "Hello";
cout << "sizeof: " << sizeof(szBuff) << endl;
cout << "strlen: " << strlen(szBuff) << endl;
-> NULL문자를 포함하여 문자열의 길이를 반환하는 방법
void Func(char* m_pBuff)
{
strlen(m_pBuff) + 1;
}
-> strlen을 사용하지 않고 문자열의 길이를 알아내는 방법은 다음과 같다.
int _len = 0;
while (_szBuff[_len] != '\0')
_len++;
위와 같이 선언을 하게되면 해당 문자열에서 NULL문자가 나올때까지 비교를 하면서 문자열의 길이를 파악할 수 있다.
#4. strcmp
-> 두 문자열이 같은지를 비교하는 함수.
-> 두 문자가 같으면 0, 다르면(대소문자도 포함) 0이 아닌 값
(두 문자의 아스키코드 값이 같아도 동일하게 0이 나온다.)
char szDst[20] = "Hello";
char szSrc[10] = "Hello";
if (!strcmp(szDst, szSrc)) // strcmp(szDst, szSrc)의 값이 1이 아닐 경우
cout << "같다" << endl;
else
cout << "다르다" << endl;
cout << !strcmp(szDst, szSrc) << endl;
char szDst[20] = "Hello";
char szSrc[10] = "HellO";
if (!strcmp(szDst, szSrc)) // strcmp(szDst, szSrc)의 값이 1이 아닐 경우
cout << "같다" << endl;
else
cout << "다르다" << endl;
cout << !strcmp(szDst, szSrc) << endl;
'Programming > C++ Basic' 카테고리의 다른 글
C++ 구조체와 포인터 (0) | 2020.08.31 |
---|---|
C++ 구조체(Struct) (0) | 2020.08.31 |
C++ 문자 배열과 문자열 상수 (0) | 2020.08.28 |
C++ 2차원 배열 (0) | 2020.08.28 |
C++ 배열과 포인터 (0) | 2020.08.28 |