문제
https://www.acmicpc.net/problem/4470
풀이
브론즈 4 문제지만 배울 게 있었다.
1. 화이트 스페이스
scanf("%[^\n]s",str);
를 입력하면 \n이 나올 때까지 입력받게 되어, 공백을 포함한 문자열을 입력받을 수 있다.
2. 버퍼 비우기
scanf로 입력을 받으면 버퍼가 비워지지 않아서 개행문자가 그대로 남는 등의
잘못된 입력을 받게 되는 경우가 있으므로 getchar();를 추가하여 해결할 수 있다.
코드
#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
char str[51];
getchar();
scanf("%[^\n]s",str);//white space
printf("%d. %s\n",i,str);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
백준 2504 - 괄호의 값(C++) (0) | 2023.04.28 |
---|---|
백준 11292 - 키 큰 사람(C++) (0) | 2022.12.04 |
백준 17608 - 막대기(C++) (0) | 2022.11.08 |
백준 9933 - 민균이의 비밀번호(C++) (0) | 2022.10.30 |
백준 10826 - 피보나치 수 4(C++) (0) | 2022.10.13 |