티스토리 뷰

반응형



이번 포스팅에서는 백준 알고리즘 사이트의 11718번 그대로 출력하기 문제를 C 언어로 코딩해보도록 하겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.


https://www.acmicpc.net/problem/11718


지난 백준 알고리즘 포스팅들과 같은 단계로 입출력 받아보기 단계의 문제입니다.




이 문제 같은 경우 한 문자열을 입력 받은 후, 그대로 출력해주는 문제입니다.


scanf와 printf를 사용하여도 되지만, scanf의 경우 추가적인 코딩을 더 해주는 것이 아니라면 공백 문자를 포함한 문자열을 입력받지 못합니다. 공백을 입력 받으면 공백 문자를 입력받기 전까지의 문자열만 변수에 저장하게 됩니다.


그렇기에 공백과 알파벳 대소문자, 숫자 모두 입력 받고 출력할 수 있는 getchar 함수와 putchar 함수를 사용하여 코딩하는 것이 더욱 짧고 쉽게 코딩할 수 있기에 해당 함수를 이용하였습니다.


또한 이 프로그램의 경우 입력의 끝을 알려주는 EOF(End Of File)을 이용해 프로그램에게 끝을 알려주어야 하는 예외처리가 필요합니다. EOF의 경우 프로그램 코딩에서는 -1과 동일하게 사용되기에 아래 코드에서 EOF와 -1은 바꿔서 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
void main(){
    char inp;
    inp = getchar();
 
    while(inp != EOF){
        putchar(input);
        inp = getchar();
    }
}
cs


프로그램 코드를 보시면 char형 변수 inp을 선언해주고, 가장 먼저 inp에 getchar() 함수를 이용해 문자열을 받아줍니다.


그리고 while 루프를 이용해 inp이 EOF가 아닐 때, 즉 끝이 나지 않았다면 putchar() 함수와 getchar() 함수를 이용해 문자열 inp을 입력받고 출력하도록 하였습니다.



이렇게 11718번 그대로 출력하기 문제도 해결하였습니다.


다음 포스팅에서 봐요:)

반응형

'BaekJoon > C' 카테고리의 다른 글

[BaekJoon/C] 백준 10998번 A×B  (0) 2018.09.03
[BaekJoon/C] 백준 11719번 그대로 출력하기 2  (0) 2018.08.30
[BaekJoon/C] 백준 7287번 등록  (0) 2018.08.09
[BaekJoon/C] 백준 1001번 A-B  (0) 2018.08.09
[BaekJoon/C] 백준 1000번 A+B  (0) 2018.08.09
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함