본문 바로가기

백준

11721)열 개 씩 끊어 출력하기

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


요즘 쉽다 생각하는 문제만 골라서 연습하려는데 자꾸 틀린다.


막상 이유를 알고나니 별 것 아니라는 게 참.. ㅎㅎ


이 문제는 최대 길이가 100인 문자열을 입력받고 10개씩 끊어 출력하는 문제다.


C언어를 사용하면 주의해야할 점이 문자열의 끝을 구분하기 위해 NULL을 사용한다는 점이다.


길이가 100인 문자열을 저장한다면 NULL까지 101개의 문자형 배열을 선언해야 한다.


그뿐만 아니라 10개씩 끊어 출력할 때 NULL이 출력되지 않게 주의해야 한다.


문자열의 각 문자에 접근할 때 즐겨쓰는 신박한 코드가 있는데 아래 소스는 이를 반영했다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
 
int main() {
    char tempChar[101];
    int i;
 
    scanf("%s",tempChar);
    for (i = 0; tempChar[i] != NULL;i++) {
        printf("%c",tempChar[i]);
        if ((i + 1) % 10 == 0printf("\n");
    }
    if (i % 10 != 0printf("\n");
 
    return 0;
}
cs


여기서 for문의 조건은 'NULL을 읽을 때까지 문자열의 각 문자에 순차적으로 접근한다'는 의미를 갖는다.


NULL이 출력되지 않게 주의해야 하는데 이렇게 조건을 작성하면 NULL을 신경쓰지 않고 문자열을 다룰 수 있다.


그  외에 눈여겨 볼 부분은 i+1 값이 10의 배수가 되는 경우에 개행을 한다는 것 정도?

'백준' 카테고리의 다른 글

10799)쇠막대기  (0) 2019.01.07
2941)크로아티아 알파벳  (0) 2019.01.06
2902)KMP는 왜 KMP일까?  (0) 2019.01.06
11365)!밀비 급일  (0) 2019.01.06
11718)그대로 출력하기  (0) 2019.01.04