7.2 표준 입출력 함수들 getchar(), putchar()

공기훈·2021년 9월 13일
0

홍정모의 따배씨

목록 보기
44/49

getchar, putchar

이 함수들은 하나의 문자를 입력받고 출력받는다.
하지만, 'hello, world!' 등과 같이 여러 글자를 입력해도 그대로 출력되는데, 이는 while문을 돌면서 한글자씩 입력받고 출력하는 것이다.

    /*
       1. Introduce getchar(), putchar()
       2. Use while loop to process character sequences
       3. Filter a specific character
       4. Convert numbers to asterisks
       5. Lower characters to Upper characters
    */

    char ch;

    ch = getchar(); // buffer 
    //putchar(ch);    // int로 받음

    while (ch != '\n') // Use '\n' to find the end of a sentence
    {
        putchar(ch);

        ch = getchar();
    }
    putchar(ch);

short code

    char ch;

    while ((ch = getchar()) != '\n')
        putchar(ch);

    putchar(ch);

    return 0;

Filter a specific character

|| : if 문 안에서 쓰일 수 있고, "또는"의 의미를 갖는다.
&& : if 문 안에서 쓰일 수 있고, "그리고"의 의미를 갖는다.

    while ((ch = getchar()) != '\n')
    {
        if (ch == 'f' || ch == 'F')
            ch = 'x';

        //else if (ch == 'F')
          //  ch = 'X';

        putchar(ch);
    }

    putchar(ch); 

Convert numbers to asterisks

	for (int i = '0'; i <= '9'; ++i)
            if (ch == i)
                ch = '*';

        putchar(ch);

이런 식으로 코드를 짜게 되면, 0부터 9까지의 숫자가 별로 바뀌게 된다.
이 코드를 더 쉽게 하면,

        if (ch >= '0' && ch <= '9')
            ch = '*';

이렇게 바꿀 수 있다.

Lower characters to Upper characters

    	if (ch >= 'a' && ch <= 'z') // 'A' = 65, 'a' = 97
            ch -= 'a' - 'A';
        else if (ch >= 'A' && ch <= 'Z')
            ch += 'a' - 'A';
        putchar(ch);

이런 식으로 하면 역으로도 가능하게 된다.

profile
be a coding master

0개의 댓글