문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C언어/문법 (문단 편집) ===== 예제 ===== C언어에서 char 자료형은 각종 자격시험 및 전공과목의 시험에서 자주 출제되는 소재이다. ---- '''1.''' char 자료형에서 문자와 숫자 간의 매핑 관계 파악하기 {{{#!syntax cpp #include int main() { char a; scanf("%c", &a); printf("%d", a); return 0; } }}} 뭔가 복잡할 것 같지만 은근 짧다. 원리는 간단하다. 문자를 입력받으면 아스키 코드로 저장되는데(6줄) 그것을 정수 형태로 출력(7줄)한 것이다. UTF-8 인코딩의 경우에는 영문 및 숫자 부분까지는 아스키 코드와 매핑이 같고 이외의 문자의 경우에는 다르다. ---- '''2.''' {{{#!syntax cpp #include int main() { char a; a = 97; printf("%c", a + 1); return 0; } }}} a는 97, 즉 a이다. 그런데 a+1을 출력하게 된다. a+1은 98이므로 98에 해당하는 아스키 코드인 b가 출력된다. [[UTF-8]] 인코딩으로 바꿔봐도 결과로 나오는 int 값은 동일하다. [[UTF-8]] 인코딩은 [[ASCII]] 인코딩과 하위호환이 되기 때문이다. ---- '''3.''' UTF-8 인코딩 방식을 통해서 char 자료형으로 입출력하는 예제이다. {{{#!syntax cpp #include #include int main() { char a[20]; printf(u8"입력해주세요.\n"); scanf(u8"%[^\n]", a); printf(u8"%s(이)라고 입력하셨습니다.\n", a); return 0; } }}} 실행 결과는 다음과 같다. ||'''입력해주세요.''' '''안녕하세요.''' '''안녕하세요.(이)라고 입력하셨습니다.'''|| ---- '''4.''' char 자료형을 [[UTF-8]] 방식으로 인코딩할 경우 한글 1자의 바이트를 구하는 예제이다. {{{#!syntax cpp #include #include int main() { char a[]=u8"가"; printf(u8"%s\n", a); printf(u8"총 %ld 바이트\n", sizeof(a)); return 0; } }}} 실행 결과는 다음과 같다. ||'''가''' '''총 4 바이트''' || char 자료형은 NULL 종료 문자로 끝나므로 이 예제에서는 a[]가 '가' (a[0])와 '\\0' (a[1], NULL 종료 문자)로 이루어져있고, '\\0'은 항상 1바이트이고 UTF-8로 인코딩 된 '가'는 3바이트라는 것을 알 수 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기