이 함수들은 하나의 문자를 입력받고 출력받는다.
하지만, '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);
char ch;
while ((ch = getchar()) != '\n')
putchar(ch);
putchar(ch);
return 0;
||
: if 문 안에서 쓰일 수 있고, "또는"의 의미를 갖는다.
&&
: if 문 안에서 쓰일 수 있고, "그리고"의 의미를 갖는다.
while ((ch = getchar()) != '\n')
{
if (ch == 'f' || ch == 'F')
ch = 'x';
//else if (ch == 'F')
// ch = 'X';
putchar(ch);
}
putchar(ch);
for (int i = '0'; i <= '9'; ++i)
if (ch == i)
ch = '*';
putchar(ch);
이런 식으로 코드를 짜게 되면, 0부터 9까지의 숫자가 별로 바뀌게 된다.
이 코드를 더 쉽게 하면,
if (ch >= '0' && ch <= '9')
ch = '*';
이렇게 바꿀 수 있다.
if (ch >= 'a' && ch <= 'z') // 'A' = 65, 'a' = 97
ch -= 'a' - 'A';
else if (ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A';
putchar(ch);
이런 식으로 하면 역으로도 가능하게 된다.