2012년 8월 29일 수요일

문자와 문자열

C언어에서는 내부적으로 문자와 숫자가 동일한 것으로 취급된다는 것에 주의해야 한다.

문자

문자는 작은 따옴표 ' '안에 표현하고, 문자열은 큰 따옴표 " "  안에 표현한다.
문자에 실제로 저장되는 값은 아스키 코드 값이다.

 1 #include <stdio.h>
 2 
 3 /*
 4     문자
 5 */
 6 
 7 int main ()
 8 {  
 9     char ch, cha;
10     ch = 'a';
11     cha = 97;
12     printf("%c\n", ch);
13     printf("%c\n", cha);
14     system("PAUSE");
15     return 0;
16 }


문자열

문자열을 위한 별도의 자료형은 존재하지 않으며, 문자형의 배열을 사용해서 문자열을 저장한다.
문자열의 마지막에는 끝을 표시하기 위해 항상 널문자(\0)가 추가된다. 따라서 문자열의 길이는 실제 문자의 갯수에 1을 더한 값이 된다.

 1 #include <stdio.h>
 2 
 3 /*
 4     문자열
 5 */
 6 
 7 int main ()
 8 {  
 9     char str1[] = "String 1.";
10     char* str2 = "String 2.";
11     printf("%s\n", str1);
12     printf("%s\n", str2);
13     printf("%d?\n", sizeof(str1));
14     system("PAUSE");
15     return 0;
16 }