[C++] 문자열 함수 / 메모리 함수
문자열 함수
문자를 다루는 함수
1. 복사
strcpy_s(1, 2, 3)
1. 복사 받을 대상의 시작 주소
2. 몇 바이트 작업할 것인지 전달
3. 복사 할 대상의 시작 주소
2. 결합
strcat_s(1, 2, 3)
1 : 결합 받을 대상의 시작 주소
2 : 몇 바이트 작업할 것인지 전달
3 : 결합 할 대상의 시작 주소
3. 길이
strlen()
4. 비교
strcmp(비교대상 1, 비교대상 2)
두 문자열이 같으면 0을 반환, 다르면 0이 아닌 값을 반환
메모리 함수
메모리 단위로 작업(초기화 또는 복사)를 수행하는 함수
1. 초기화 함수
memset(1, 2, 3)
1 : 초기화할 메모리의 시작 주소
2 : 초기화할 데이터(값)
3. 시작 주소부터 몇 바이트 공간을 초기화할 것인지 전달
주의사항
byte단위로 초기화를 진행한다
-> 특정 값으로 초기화는 불가능하니 대부분 0으로 초기화하는 용도로 사용한다.
2. 메모리 단위 복사 함수
memcpy(1, 2, 3)
1 : 복사 받을 메모리의 시작 주소
2 : 복사할 메모리의 시작 주소
3: 몇 바이트 작업할 것인지 크기를 전달
3. 메모리 복사 함수
memmove(1, 2, 3)
1 : 복사 받을 메모리의 시작 주소
2 : 복사할 메모리의 시작 주소
3 : 몇 바이트 작업할 것인지 크기를 전달
int iArr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
// 복사 받을 대상의 시작 주소 : iArr + 1
// -> 두 번재 원소부터 복사를 받아라!
// 복사할 메모리의 시작 주소 : iArr
// -> 첫 번재 원소부터 복사해라!
// 개선 전 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
// 개선 후 : 1, 1, 2, 3, 4, 5, 6, 7, 8, 9
memcpy(iArr + 1, iArr, sizeof(iArr) - sizeof(int));
// 1, 1, 2, 3, 4, 5, 6, 7, 8, 9
memmove(iArr + 1, iArr, sizeof(iArr) - sizeof(int));
memcpy와 memmove의 차이점
memcpy
표준이 아니다.
버퍼를 사용하지 않고 복사가 진행된다.
memmove
표준이다.
버퍼를 사용해서 복사가 진행된다.