[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
strncat()
✦ <string.h>
✦ Destination 문자열 내 NULL String 제거 후 지정 문자 수 만큼 Source 문자열 이어 쓰기 복사
✦ Parameter1에 전달되는 Argument1
✧ Destination 문자열 주소
✦ Parameter2에 전달되는 Argument2
✧ Source 문자열 주소 전달
✦ Parameter3에 전달되는 Argument3
✧ 문자 수 전달
✦ Return 값
✧ 성공
→ Destination 문자열
✧ 실패
→ 0
char *strncat(char *strDest, const char *strSource, size_t count);
Plain Text
복사
Ex)
#include <stdio.h>
#include <string.h>
int main() {
char str[8] = "hi ";
char* hello = "hello world";
strncat(str, hello, 4);
printf("%s", str);
return 0;
}
Plain Text
복사
hi hell
--------------------------------
Process exited after 0.07699 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사
strncat() 기능 구현 - Ex)
#include <stdio.h>
char *self_strncat(char *destination, char *source, size_t num);
int main() {
char str[32] = "hi ";
char *hello = "hello world";
self_strncat(str, hello, 16);
printf("%s", str);
return 0;
}
char *self_strncat(char *destination, char *source, size_t num) {
size_t i = 0;
size_t start = 0;
while(destination[start] != '\0')
start++;
for(i = 0; i < num; i++) {
destination[start+i] = source[i];
if(source[i] == '\0')
break;
}
destination[start+i] == '\0';
return destination;
}
Plain Text
복사
hi hello world
--------------------------------
Process exited after 0.1889 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사



