[CS_study] 문자

나라리야·2021년 4월 28일
0

CS_study

목록 보기
10/18
post-thumbnail

문자

아스키 코드

C 프로그램의 문자는 아스키 코드(Ascii Code)를 따릅니다.
아스키 코드는 0~127중의 1바이트로 구성되며 주요 문자를 출력하도록 해줍니다.

0은 48, 대문자 A는 65, 소문자a는 97이다.



캐릭터형 자체에 숫자를 넣어서 처리할 수 있다.
문자 입출력에서 형식 지정자로 %c를 쓴다.

예제)

#include <stdio.h>

int main(void) { 
    char a = 65; 
    printf("%c\n", a); // 형식지정자 %c 사용 
    system("pause");  // A가 출력된다. 
}

문자 입출력 함수

단 하나의 문자를 입력받을 때는 getchar()를 이용해서 입력을 받는 방식을 이용할 수 있다.
사용자로부터 getchar()는 단 하나의 문자를 입력 받는다.

예제)

#include <stdio.h>

int main(void) {
	char a = getchar(); // 하나의 문자만을 입력받는다. 
	printf("%c\n", a); 
	system("pause");
}

문자와 버퍼

문자열을 처리할 때 버퍼의 개념이 많이 사용되는데 버퍼(Buffer)란 임시적으로 특정한 데이터를 저장하기 위한 목적으로 사용된다. C프로그램은 기본적으로 사용자가 의도하지 않아도 자동으로 버터를 이용해 입출력을 처리한다. 사실 컴퓨터는 한번에 처리할 수 있는 데이터가 한정적이므로 버퍼에 담아서 하나씩 돌아가며 처리된다. 버퍼에 임시적으로 담겼다가 사용되어 출력되는 것이라고 보면 된다.

예제) 남아있는 입력 버퍼를 항상 지울 수 있다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int a; char c;
	scanf("%d", &a);
	printf("%d\n", a);
	int temp;
// 한 자씩 받아서 파일의 끝이거나 개행 문자를 만나면 입력을 멈추므로 항상 입력 버퍼를 비웁니다. 
  while ((temp = getchar()) != EOF && temp != '\n') { }
	scanf("%c", &c);
	printf("%c\n", c);
	system("pause");
	return 0;
}

오늘의 정리!

1) C언어에서의 문자는 내부적으로 아스키 코드 구조를 따릅니다.
2) C언어에서 문자 입출력의 내부에는 버퍼(Buffer)가 존재합니다.

profile
Code의 美를 추구하는 개발자 🪞

0개의 댓글