백준C(문자열)

쿵ㅇ양·2023년 12월 30일

알고리즘

목록 보기
7/18

백준11718-그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

-scanf함수의 허점!!

: scanf함수를 연달아 사용했을때 하나만 입력 받고 프로그램이 종료됨
scanf함수의 마지막에 오는 개행문자가 다음 입력받는 문자에 들어가버리기때문

1.사이에 getchar()함수 사용 : 개행 문자 없애버림

scanf("%c", &value1);
getchar();
scanf("%c", &value2);
printf("%c", value1);
printf("%c", value2);

2. 화이트 스페이스 사용 : 일반적인 '%c'는 화이트 스페이스까지 모두 문자로 인식하지만 화이트 스페이스를 제외한 문자를 인식 받을때에는 '%c'앞에 화이트 스페이스를 입력

scanf(" %c", &value1);
scanf(" %c", &value2);
printf("%c", value1);
printf("%c", value2);

-반복문 종료 : EOF

if(scanf(" %[^\n]s", str) == EOF)
            break;

파일의 끝을 표현한 상수로 -1 값을 지칭

#include<stdio.h>

int main(){
    char str[100];
    int i = 0;
    
    while (i < 100){
        if(scanf(" %[^\n]s", str) == EOF)
            break;
        printf("%s\n", str);
        i++;
    }
    return 0;
}
profile
개발을 공부하고 있는 대학생

0개의 댓글