1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<cstdio> #include<cstring> #include<cctype> #include<iostream> using namespace std; char cstr[102]; int main(void) { int n; scanf("%d", &n); while(n--) { cin.ignore(); scanf("%[^\n]s", cstr); cstr[0]=toupper(cstr[0]); printf("%s\n", cstr); cstr[0]='\0'; } return 0; } | cs |
중요한 건 공백 포함 문자열을 입력 받아야한다. 그래서
1. 버퍼 비우고
2. scanf("%[^\n]s", cstr); 을 통해 공백까지 문자열을 입력 받고
3. toupper를 통해 첫글자를 대문자로 바꾸고
4. 출력 후 초기화 해주면 된다.
버퍼 비우는게 왜 중요하냐면 처음에 테스트케이스 입력 받고 엔터를 치는데 버퍼 비우기를 안하면
while문에서 공백 전까지 입력받는 것이라 되어있어서 입력도 못 받고 끝나기 때문이다. 그래서 꼭 버퍼비우기를 해줘야한다.
'백준 1 > 기타' 카테고리의 다른 글
| [백준 1181] 단어 정렬 (C++/Java) (0) | 2020.12.07 |
|---|---|
| [백준 2230] 수 고르기 (Java) (0) | 2020.12.07 |
| [백준 1568] 새 (C++) (0) | 2020.12.07 |
| [백준 1275] 커피숍2 (C++) (0) | 2020.12.07 |
| [백준 10820] 문자열 분석 (C++) (0) | 2020.12.07 |