C 프로그래밍 언어에서는 printf 함수와 형식 지정자(format specifier)를 조합하면 문자와 문자열을 다양한 형식으로 출력할 수 있습니다. 아래 알고리즘은 이 과정을 단계별로 설명합니다.
알고리즘
1단계: 출력할 문자 하나를 입력받습니다.
2단계: 컴파일 시점에 이름(문자열)을 지정합니다.
3단계: 형식 지정자를 사용하여 문자를 여러 형식으로 출력합니다.
- printf("%c\n%3c\n%5c\n", x, x, x);
- printf("%3c\n%c\n", x, x);
- printf("\n");
4단계: 형식 지정자를 사용하여 문자열을 여러 형식으로 출력합니다.
- printf("%s\n", name);
- printf("%20s\n", name);
- printf("%20.10s\n", name);
- printf("%.5s\n", name);
- printf("%-20.10s\n", name);
- printf("%5s\n", name);
형식 지정자의 의미
- %c — 문자 하나를 그대로 출력합니다.
- %3c, %5c — 폭 3칸 또는 5칸 안에서 오른쪽 정렬하여 문자를 출력합니다.
- %s — 문자열 전체를 출력합니다.
- %20s — 폭 20칸 안에서 오른쪽 정렬하여 문자열을 출력합니다.
- %20.10s — 폭 20칸 안에서 오른쪽 정렬하되, 앞에서 최대 10글자만 출력합니다.
- %.5s — 문자열의 앞 5글자만 출력합니다.
- %-20.10s — 폭 20칸 안에서 왼쪽 정렬하되, 앞에서 최대 10글자만 출력합니다.
예제 1
다음은 문자와 문자열을 다양한 형식으로 출력하는 C 프로그램입니다.
#include<stdio.h>
main(){
char x = 'T';
static char name[20] = "Tutorials Point";
printf("OUTPUT OF CHARACTERS\n\n");
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("\n");
printf("OUTPUT OF STRINGS\n\n");
printf("%s\n", name);
printf("%20s\n", name);
printf("%20.10s\n", name);
printf("%.5s\n", name);
printf("%-20.10s\n", name);
printf("%5s\n", name);
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
OUTPUT OF CHARACTERS T T T T T OUTPUT OF STRINGS Tutorials Point Tutorials Point Tutorials Tutor Tutorials Tutorials Point
예제 2
이번에는 다른 형식 지정자 조합을 확인하는 프로그램을 살펴보겠습니다.
#include<stdio.h>
main() {
char x = 'T';
static char name[20] = "Tutorials Point";
printf("OUTPUT OF CHARACTERS\n\n");
printf("%c\n", x);
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("\n");
printf("OUTPUT OF STRINGS\n\n");
printf("%.5s\n", name);
printf("%-10.10s\n", name);
printf("%.20s\n", name);
printf("%20.10s\n", name);
printf("%20s\n", name);
printf("%10s\n", name);
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
OUTPUT OF CHARACTERS
T
T
T
T
T
T
T
T
T
T
T
OUTPUT OF STRINGS
Tutor
Tutorials
Tutorials Point
Tutorials
Tutorials Point
Tutorials Point이처럼 폭(width)과 정밀도(precision) 지정자를 적절히 활용하면 출력 결과의 정렬 방향과 글자 수를 자유롭게 제어할 수 있습니다. 특히 표 형태의 데이터를 깔끔하게 출력할 때 매우 유용합니다.