9.2 문자로 연산하기

문자는 ASCII 코드 규칙에 의해 정수로 저장되므로 정수처럼 덧셈, 뺄셈 등을 할 수 있습니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.

char_plus.c

#include <stdio.h>

int main()
{
    printf("%c %d\n", 'a' + 1, 'a' + 1);    // b 98: a는 ASCII 코드값 97이고, 
                                            // 97에 1을 더하여 98이 되었으므로 b가 출력됨

    printf("%c %d\n", 97 + 1, 97 + 1);      // b 98: ASCII 코드값 97에 1을 더하여 98이 되었으므로 
                                            // b가 출력됨

    return 0;
}

실행 결과

b 98
b 98

'a' + 1과 같이 작은따옴표로 묶은 문자는 정수를 더하거나 뺄 수 있습니다. 'a'의 ASCII 코드값은 97이고, 97에 1을 더하면 98입니다. 따라서 98에 해당하는 문자 b가 출력됩니다.

만약 'a'에 2를 더하면 어떤 문자가 나올까요? 99에 해당하는 c가 출력될 것입니다. 즉, 어떤 값으로 사칙연산을 하느냐에 상관없이 결괏값이 0~255 사이의 ASCII 코드 범위에만 있으면 됩니다.

물론 char 변수에 정수를 더하거나 빼도 결과는 같습니다.

char c1 = 'a';

printf("%c %d\n", c1 + 1, c1 + 1);    // b 98