[C++] 문자열 길이 strlen(), 문자열 복사 strcpy()

2019. 7. 27. 20:53 기타/C++

[C++] 문자열 길이 strlen(), 문자열 복사 strcpy()


strlen(A) : 문자열 배열 A의 길이를 구하는 함수 

strcpy(A, B) : 문자열 B를 A에 복사한다.



#include <iostream>
#include <cstring>
using namespace std;

int main(){

    char src[] = "Hyeon";

    int len = strlen(src);

    char* dest = new char[len + 1];

    strcpy(dest, src);

    cout << "src= " << src << endl;
    cout << "dest = " << dest << endl;

    delete[] dest;
    dest = NULL;


    return 0;
}


strlen() 과 sizeof() 함수는 다르다.


strlen()은 배열의 길이를 반환하는 함수이며, sizeof()는 메모리 바이트를 세어주는 함수이다.


물론, char는 1바이트이기에, char 배열에 strlen()과 sizeof()는 같은 값을 반환하지만, 같은 것은 아니다.

char가 아닌 int 형일 경우 다른 결과가 나온다.



strcpy()를 사용할 경우 빌드시 안전하지 않다고 에러가 나올 수 있다.

그러면 strcpy_s(A, strlen(A)+1, B)  를 사용하면 된다.



출처: https://hyeonstorage.tistory.com/303?category=601868 [개발이 하고 싶어요]