2017 C Chapter 7 (Week 13)

From: 2017-03-01 00:00:00 To: 2017-06-27 00:00:00 Now: 2024-11-21 21:33:01 Status: Public

C - 연습 7.3 가짜 printf

Time Limit: 1s Memory Limit: 128MB

Submissions: 642 Solved: 157
Description

우리가 아주아주 유용하게 사용하고 있는 함수가 하나 있습니다. 바로 printf 입니다. printf 함수는 주어진 형식 문자열과 변수들을 조합하여 사용자가 원하는 출력 값을 손쉽게 만들어 줍니다.

이번 문제에서는 형식 문자열과 변수가 주어졌을 때, 이를 조합하여 printf 처럼 동작하도록 만들어봅시다!

아, 물론 진짜 printf보다는 훨씬 간단하게 말이지요..

형식 문자 중 %s, %d, %f, %x, %X, %o, %c, %e, %u 를 다룰 수 있어야 하며, 형식 문자열은 여러개의 형식 문자와 ASCII 코드가 섞일 수 있습니다.

입력으로는 형식 문자열과 변수 집합이 문장으로 들어옵니다. 형식 문자열은 무조건 문장의 맨 처음에 나타나며 쌍따옴표(")로 묶여져 있습니다. 각각의 변수는 공백으로 구분합니다. (그러므로 문자열 변수의 경우 공백은 포함하지 않습니다.) 이를 조합하여 적절한 결과 값을 출력하여 보세요!

(추가) %x, %X 의 경우 a-z, A-Z 사이의 ASCII character가 입력으로 들어옵니다.

(추가) float 자료형의 정밀도 문제로 인해 채점이 잘 안되고 있습니다. 실수의 경우 double 자료형을 사용하여야 정상 채점이 됩니다.. scanf 계열 함수를 사용할 경우 double 형은 "%lf" 을 이용하면 됩니다.

Input

- Line 1 ~ EOF : 형식 문자열과 변수 집합

    - 형식 문자열 : 문장의 맨 앞에 존재, 쌍 따옴표(")로 묶임

         - 형식 문자 : %s, %d, %f, %x, %X, %o, %c, %e, %u

    - 변수 : 형식 문자의 개수만큼 존재. 공백(' ')으로 구분

Output

- Line 1 ~ EOF : printf 결과 문장

Sample Input
"HELLO"
"%s" string
"%d" 30
"%f" 678.3910
"%x" L
"%X" L
"%o" 111
"%c" 65
"%e" 3.141519
"%u" 4294967295
"HELLO %s !!" WORLD
"%d %f %x %o %c %e" 30 30.5 L 111 65 3.141519
Sample Output
HELLO
string
30
678.391000
4c
4C
157
A
3.141519e+00
4294967295
HELLO WORLD !!
30 30.500000 4c 157 A 3.141519e+00
Hint

조금 어려운 문제입니다. 먼저 Sample Input에 대해 출력이 정상적으로 수행되는지 확인 후 submit하세요! 또한 EOF 처리에 신경 써야 합니다.