#12 문자vs문자열

김터넷 ㅣ 2023. 1. 26. 03:23

728x90
반응형

문자 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