38.9 연습문제: 문자열 리터럴과 동적 메모리 붙이기
다음 소스 코드를 완성하여 "Alice in Wonderland"가 출력되게 만드시오.
practice_string_concatenate_pointer_to_memory.c
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *s1 = " Wonderland"; char *s2 = malloc(sizeof(char) * 30); ①____________________ ②____________________ printf("%s\n", s2); free(s2); return 0; }
실행 결과
Alice in Wonderland
정답
① strcpy(s2, "Alice in"); ② strcat(s2, s1);
해설
s2는 메모리만 할당했으므로 문자열이 들어있지 않습니다. 따라서 strcpy 함수로 s2에 "Alice in"을 복사합니다. 그리고 strcat 함수로 s1의 문자열을 s2 뒤에 붙이면 printf 함수에서 "Alice in Wonderland"가 출력됩니다.