[C언어] 문자 자료형, 상수 사용하기 - 코딩도장
[코딩도장] Unit 9 ~ 11
1. 문자 자료형, 상수
1. 문자 자료형
정수 자료형인 char를 이용하여 문자 한 개를 저장한다
○ 추가
unsigned char는 파일이나 네트워크 패킷의 내용을 1바이트 단위로 표현할 때 주로 사용
Windows에서는 unsigned char를 BYTE 자료형으로 정의해서 사용
char 에 문자를 저장할 때는 문자에 해당하는 정수 값을 저장하게 된다
문자, 숫자, 제어문자는 0 ~ 255 까지 정수에 대응되며 이 규칙을 ASCII 코드라고 한다
C 언어에서 문자는 ' '(작은따옴표)로 묶어서 표현한다
char c1 = 'a';
※ 작은따옴표는 문자 하나만 묶을 수 있다. 두 개 이상은 불가능하다
pritnf 함수에서 문자를 출력할 때는 %c 를 이용한다
printf("%c", a);
자주 사용하는 제어문자로는 LF, CR, TAB 이 있다
제어문자도 마찬가지로 printf 로 출력할 수 있다
printf("%c", \n);
2. 상수
상수는 변하지 않는 값을 말한다
변수는 한 번 선언하면 값을 계속 바꿀 수 있지만,
상수는 값을 바꿀 수 없다
상수는 const 를 붙여서 선언한다
리터럴은 "문자 그대로" 라는 뜻이지만 C언어에서는 값 그 자체를 뜻한다
// ↓ 상수
const int con1 = 10;
// ↑ 리터럴
리터럴은 코드 상에서 값을 바로 입력하는 것이다
아래 코드에서 10, 0.1f, a, Hello, world! 가 리터럴이 된다
printf("%d\n", 10);
printf("%f\n", 0.1f);
printf("%c\n", 'a');
printf("%s\n", "Hello, world!");
정수 리터럴 접미사는 정수 리터럴의 크기와 부호 유무를 표기할 때 사용한다
실수 리터럴 접미사는 실수 리터럴의 크기를 표기할 때 사용한다
3. 문자 입출력 함수
입력값을 변수에 저장할 때는 scanf 함수를 이용한다
변수 앞에는 &를 붙여줘야 한다
int num1;
float num2;
char c1;
scanf("%d %f %c", &num1, &num2, &c1);
%d : 정수
%f : 실수
%c : 문자
getchar 함수는 표준 입력에서 문자 하나를 입력받고
putchar 함수는 표준 출력에 문자 하나를 출력한다
char c1 = getchar();
putchar(c1);
2. 심사문제
9.7 제어 문자 사용하기
다음 소스 코드를 완성하여 "Hello world"가 각 줄에 두 번 출력되게 만드세요("Hello"와 "world" 사이는 탭으로 띄웁니다).
정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
#include <stdio.h>
int main()
{
char c1;
char c2;
char c3;
________
________
________
printf("Hello%cworld%cHello%cworld\n", c1, c2, c3);
return 0;
}
정답
c1 = '\t';
c2 = '\n';
c3 = '\t';
9.8 알파벳 소문자를 대문자로 변환하기
다음 소스 코드를 완성하여 "A"가 출력되게 만드세요.
정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
#include <stdio.h>
int main()
{
char c1 = 'a';
printf("%c\n", c1 ___);
return 0;
}
정답
- 32
ASCII 코드에서
a 는 97
A 는 65
97 - 65 = 32
10.8 리터럴 사용하기
다음 소스 코드를 완성하여 Hello, world! 76 -2147483647 4.528172가 출력되게 만드세요.
정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
#include <stdio.h>
int main()
{
printf("%s %o %lld %Lf\n", "Hello, world!", ______________________);
return 0;
}
정답
076, -2147483647LL, 4.528172L
%s 는 문자열이므로 리터럴 Hello, world!
%o 는 8진수이므로 리터럴 076
%lld 는 long long 이므로 리터럴 -2147483647LL
%Lf 는 long double 이므로 리터럴 4.528172L
10.9 상수 사용하기
다음 소스 코드를 완성하여 -2.225074e-308 0x1285 9223372036854775807가 출력되게 만드세요.
정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
#include <stdio.h>
int main()
{
const ______________________;
const int con2 = 0x1285;
const long long con3 = 9223372036854775807LL;
printf("%Le 0x%x %lld\n", con1, con2, con3);
return 0;
}
정답
long double con1 = -2.225074e-308L;
%e 는 long double 자료형에 지수표기법을 사용한다
const long double con1 = -2.225074e-308L; 과 같이 선언하면 된다
11.7 정수, 실수, 문자 입력받기
표준 입력으로 정수, 실수, 문자가 입력됩니다. 입력된 정수, 실수, 문자를 각 줄에 출력하는 프로그램을 만드세요.
정답에는 C 언어 컴파일러에서 정상적으로 컴파일되는 전체 코드를 입력해야 합니다.
정답
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num1;
float num2;
char c;
scanf("%d %f %c", &num1, &num2, &c);
printf("%d\n%f\n%c\n", num1, num2, c);
return 0;
}