C언어 %d %s %u %c 형식 지정자 총정리

링크가 복사되었습니다
조회 1

C언어에서 %d, %s, %u, %c와 같은 형식 지정자는 printf, scanf와 같은 입출력 함수에서 데이터의 형식과 타입을 명시하는 데 사용됩니다. 각 형식 지정자는 특정 데이터 타입과 호환되며, 이를 올바르게 사용해야 프로그램이 의도한 대로 데이터를 처리할 수 있습니다. 잘못된 형식 지정자는 예기치 않은 오류를 발생시키거나 프로그램의 오작동을 유발할 수 있으므로, 각 형식 지정자의 의미와 사용법을 정확히 이해하는 것이 중요합니다. 본 글에서는 C언어에서 자주 사용되는 %d, %s, %u, %c 형식 지정자의 의미와 사용법을 자세히 알아보고, 실제 예시 코드를 통해 이해를 돕겠습니다.

%d: 정수(Decimal Integer) 출력

%d 형식 지정자는 부호 있는 10진수 정수를 출력하거나 입력받을 때 사용됩니다. 즉, 양수, 음수, 0을 모두 포함하는 일반적인 정수형 변수(int)와 함께 사용됩니다. printf 함수에서 %d를 사용하면 해당 위치에 변수의 정수 값이 10진수로 출력됩니다. scanf 함수에서는 %d를 사용하여 사용자로부터 10진수 정수 값을 입력받아 변수에 저장합니다.

예시:

int age = 25;
printf("나이는 %d세입니다.\n", age); // 출력: 나이는 25세입니다.

int score;
printf("점수를 입력하세요: ");
scanf("%d", &score); // 사용자로부터 정수 입력받음
printf("입력한 점수: %d\n", score);

%s: 문자열(String) 출력

%s 형식 지정자는 문자열을 출력하거나 입력받을 때 사용됩니다. C언어에서 문자열은 문자의 배열이며, 마지막에는 널 문자('\0')로 끝나야 합니다. printf 함수에서 %s를 사용하면 해당 위치에 문자열 변수(char 배열)의 내용이 출력됩니다. scanf 함수에서 %s를 사용하면 공백이 나타나기 전까지의 문자열을 입력받아 변수에 저장합니다. 다만, scanf로 문자열을 입력받을 때는 버퍼 오버플로우의 위험이 있으므로 주의해야 합니다.

예시:

char name[] = "홍길동";
printf("이름: %s\n", name); // 출력: 이름: 홍길동

char inputName[50];
printf("이름을 입력하세요: ");
scanf("%s", inputName); // 사용자로부터 문자열 입력받음 (공백 전까지)
printf("입력한 이름: %s\n", inputName);

%u: 부호 없는 정수(Unsigned Integer) 출력

%u 형식 지정자는 부호 없는 10진수 정수를 출력하거나 입력받을 때 사용됩니다. 부호 없는 정수는 음수를 표현할 수 없으며, 0 이상의 값만 표현합니다. 따라서 %u는 unsigned int 타입의 변수와 함께 사용됩니다. %u를 사용하면 해당 변수의 값을 0 이상의 10진수 값으로 출력하거나 입력받습니다.

예시:

unsigned int positiveNum = 100;
printf("양수: %u\n", positiveNum); // 출력: 양수: 100

unsigned int largeNum;
printf("큰 양수를 입력하세요: ");
scanf("%u", &largeNum); // 사용자로부터 부호 없는 정수 입력받음
printf("입력한 양수: %u\n", largeNum);

%c: 단일 문자(Character) 출력

%c 형식 지정자는 단일 문자(char 타입)를 출력하거나 입력받을 때 사용됩니다. printf 함수에서 %c를 사용하면 해당 위치에 문자가 출력됩니다. scanf 함수에서 %c를 사용하면 사용자로부터 입력받은 문자 하나를 변수에 저장합니다. scanf에서 %c를 사용할 때는 이전 입력에서 남아있던 개행 문자(newline character) 등이 영향을 줄 수 있으므로, 이를 처리하기 위해 % c와 같이 공백을 추가하거나 %*c를 사용하여 해당 문자를 버리는 기법을 사용하기도 합니다.

예시:

char initial = 'A';
printf("첫 글자: %c\n", initial); // 출력: 첫 글자: A

char inputChar;
printf("문자를 입력하세요: ");
scanf(" %c", &inputChar); // 사용자로부터 문자 하나 입력받음 (앞 공백 주의)
printf("입력한 문자: %c\n", inputChar);

형식 지정자 사용 시 주의사항

C언어에서 형식 지정자를 사용할 때 가장 중요한 것은 데이터 타입과 형식 지정자의 일치입니다. 예를 들어, int 타입 변수를 %s로 출력하려고 하면 예상치 못한 결과가 발생합니다. 또한, scanf 함수를 사용할 때는 입력받을 변수의 주소(& 연산자)를 정확히 지정해야 하며, 문자열 입력 시에는 버퍼 크기를 고려하여 오버플로우를 방지해야 합니다. %c를 사용할 때는 앞서 언급한 개행 문자 처리 문제에 유의해야 합니다. 이러한 주의사항을 지키면 C언어의 입출력 기능을 보다 안정적이고 효율적으로 활용할 수 있습니다.

이 글이 도움이 되셨나요?← 홈으로