C 프로그래밍 언어에서 문자(character)는 영문 대소문자(A-Z, a-z), 숫자(0-9), 공백(white space), 또는 특수 기호를 모두 포함하는 개념입니다. 이 글에서는 C 언어에서 문자를 다루는 기본적인 방법과 주요 입출력 함수를 예제와 함께 살펴보겠습니다.
문자 변수 선언
C 언어에서 문자 연산을 위해 변수를 선언하는 기본 문법은 다음과 같습니다.
char a = 'A'; // 문자 상수를 이용한 선언
char 자료형은 단일 문자 하나를 저장하며, 작은따옴표(' ')로 감싼 문자 상수를 통해 초기화할 수 있습니다.
문자 입출력 함수
C 언어에서 자주 사용되는 문자 입출력 함수는 크게 세 가지 계열로 나눌 수 있습니다.
- scanf / printf: 서식 지정자
%c를 사용하여 표준 입출력으로 문자를 읽고 씁니다. - getchar / putchar: 버퍼링된 표준 입력에서 한 문자씩 읽고, 한 문자씩 출력합니다.
- getch / putch: 콘솔 화면에서 즉시(버퍼 없이) 문자를 입력받고 출력하며, 일반적으로 conio.h 헤더가 필요합니다.
scanf("%c", &a); printf("%c", a);
a = getchar(); putchar(a);
a = getch(); putch(a);예제: 입력된 줄 수 세기
다음은 getchar() 함수를 활용하여 사용자가 입력한 문장의 줄 수를 세는 C 프로그램입니다.
#include <stdio.h>
/* 입력에서 줄 수 세기 */
main(){
int count, num;
printf("enter multiple statements and Press cntrl+z:\n");
num = 0;
while ((count = getchar()) != EOF)
if (count == '\n')
++num;
printf("%d\n", num);
}이 프로그램은 getchar()로 문자를 하나씩 읽으면서 개행 문자('\n')를 만날 때마다 카운터를 증가시킵니다. Windows 환경에서는 Ctrl+Z(파일 끝 표시)를 입력하면 루프가 종료되며 결과가 출력됩니다.
실행 결과
위 프로그램을 실행했을 때의 출력 결과는 다음과 같습니다.
enter multiple statements and Press cntrl+z: Hi Hello Welcome To My World ^Z 4
사용자가 네 줄의 문장을 입력한 후 Ctrl+Z(^Z)를 눌렀고, 프로그램은 개행 문자의 개수인 4를 정확히 출력했습니다. 이처럼 문자 단위 입출력 함수를 활용하면 간단한 텍스트 분석 프로그램도 손쉽게 구현할 수 있습니다.