문자 vs 문자열
// 문자는 한글자 , 문자열은 한글자 이상
//char c = 'A';
//printf("%c\n", c); // 문자열은 %c
//char str[6] = "coding"; // [c][o][d][i][n][g][\0]
//printf("%s\n", str); // 주의할점이 있다.
// 문자열 끝에는 '끝'을 의미하는 NULL문자 '\0'이 포함되어야 함
/*char str[7] = "coding";
printf("%s\n", str);*/
// coding뒤에 끝을 나타내는 널문자값 배열을 주니 정상 출력이 되었다.
//char str[] = "coding";
//printf("%s\n", str);
//printf("%d\n", sizeof(str));
//자동으로 널문자값을 넣어서 6글자가 아닌 7글자가 된다.
//for (int i = 0; i < sizeof(str); i++)
//
//{
// printf("%c\n", str[i]);
//
//}
//
//char kor[] = "나도코딩"; // 한글을 넣어보자
//printf("%s\n", kor);
//printf("%d\n", sizeof(kor)); // 한글은 4글자를 입력했는데 9라는 사이즈가 출력된다.
// 영어 1글자 : 1 byte
// 한글 1글자 : 2 byte
// 한 글 단순 예시로 비교해 봤을때 한글은 복잡해서 많은 공간이 필요하다
// en gl ish
// char 크기는 1byte
//문자열 심화
/*char c_array[7] = {'c','o','d','i','n','g','\n'};
char c_array[6] = { 'c','o','d','i','n','g'}; 넓값을 주지 않아 깨진 문자가 출력이 된다.
printf("%s\n", c_array);*/
char c_array[10] = { 'c','o','d','i','n','g' };
/*printf("%s\n", c_array);
for (int i = 0; i < sizeof(c_array); i++)
{
printf("%c\n", c_array[i]);
}*/
// 코딩이라는 글자외에 남는 공간이 있다면 NULL값이 자동으로 들어가게 된다.
//for (int i = 0; i < sizeof(c_array); i++)
//{
// printf("%d\n", c_array[i]); // %d로 출력을 해보면 어떨까?
//}
// ASCII 코드 값이 출력이 된다.(NULL문자는 0으로 출력)
// ASCII 코드란 ANSI(미국표준협회)에서 제시한 표준 코드 체계
// 7bit, 총 128개의 코드 (0~127)
// a : 97 (문자 a의 아스키코드 정수값)
// A : 65
// 0 : 48
/*printf("%c\n", 'a');
printf("%d\n", 'a');
printf("%c\n", 'b');
printf("%d\n", 'b');*/
//숫자가 늘어나는 것을 유추해 볼 수 있다.
//printf("%c\n", 'A'); // 대문자는 ?
//printf("%d\n", '\0'); // 널값은 ?
// 0~127 사이의 아스키코드 정수값에 해당하는 문자 확인
for (int i = 0; i < 128; i++)
{
printf("아스키 코드 정수 %d : %c\n", i, i);
}
'C 언어' 카테고리의 다른 글
#11 배열(array) (0) | 2023.01.24 |
---|---|
#10 함수2 (0) | 2023.01.23 |
#9 함수 (0) | 2023.01.21 |
#8 UP & DOWN (0) | 2023.01.20 |
#7 and, or, rand, switch (0) | 2023.01.19 |