36.7 연습문제: 문자열 세 개 입력받기
다음 소스 코드를 완성하여 표준 입력으로 문자열 세 개를 입력받은 뒤 각각 출력되게 만드세요.
practice_scanf_three_string_pointer_memory.c
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { char *s1 = malloc(sizeof(char) * 10); char *s2 = malloc(sizeof(char) * 10); char *s3 = malloc(sizeof(char) * 10); printf("문자열을 세 개 입력하세요: "); _________________________________________ printf("%s\n", s1); printf("%s\n", s2); printf("%s\n", s3); free(s1); free(s2); free(s3); return 0; }
실행 결과
문자열을 세 개 입력하세요: Beethoven 9th symphony(입력) Beethoven 9th symphony
정답
scanf("%s %s %s", s1, s2, s3);
해설
문자열을 여러 개 입력받으려면 scanf 함수의 서식 부분에 %s를 여러 개 지정합니다. 여기서는 문자열을 세 개 입력받으므로 "%s %s %s"처럼 지정하고, 각 문자열을 저장할 문자열 포인터 세 개를 넣어줍니다. 특히 s1, s2, s3은 포인터이므로 &를 붙이지 않고 그대로 넣습니다.