지난 글에서는 문자를 저장하는 변수에 대해서

살펴보았는데요. 



[C3-3] 문자를 저장하는 변수 - char



이번 글에서는 문자열을 저장하는 방법에 대해서

살펴보도록 하겠습니다.


문자열을 저장할 때에도,

문자를 저장할 때와 마찬가지로

char를 사용합니다.


사용법도 대체로 비슷한데,

조금 다른 부분이 있습니다.


char로 선언된 변수의 경우,

무조건 한 글자를 저장하죠.


문자열에서는 여러 글자를 저장해야 하잖아요?


그래서 몇 글자를 저장할지 적어주어야 합니다.


1글자를 저장할 때 사용했던 방법은

char a;

였는데요.


만약 3글자를 저장하려면

char a[3];


만약 10글자를 저장하려면

char a[10];


이런 식으로 해주시면 됩니다.


생각보다 참 간단하죠?


그런데 주의하실 것이 있어요.

문자열에는 널문자라는 것이 저장되어야 한답니다.

널문자는 문자열의 끝을 의미하구요.

기호로는 '\0'으로 표시합니다.


따라서 "abc"라는 문자열을 저장하려면,

3개의 공간이 아니라,

널문자가 하나 더 들어가야 하므로

4개의 공간을 만들어줘야 합니다.


char a[4] = "abc";

이렇게요.


이렇게 저장된 문자열은

printf("%s", a);

이런 식으로 해주시면

a에 저장된 문자열이 화면에 출력된답니다.


만약 "abc"에서 첫 글자를 'a'가 아닌

'd'로 바꾸고 싶다면 어떻게 할까요?



그러면

a[0] = 'd';

이렇게 a의 위치 정보를 사용하셔서

그 값을 바꿔주시면 됩니다.


a의 0번째 값에 'd'를 저장한다.

정도의 의미가 되겠습니다.



근데 왜 [1]이 아니라 [0]일까요?


컴퓨터는 값을 셀 때 1부터가 아니라,

0부터 센다고 생각하시면 편리합니다.


우리는 1번째, 2번째, ...

컴퓨터는 0번째, 1번째, ...

이렇게요.


그래서 우리가 생각할 때에는 1번째 값을 바꾸지만,

컴퓨터에게는 0번째 값을 바꿔달라고 해야한답니다.



그러면 아래 코드의 결과가

어떻게 될지 한 번 예상해볼까요?



 1
 2
 3
 4
 5
 6
 7
 8
 9
10

#include <stdio.h> int main() { char a[4] = "abc"; printf("%s %c %c %c", a, a[0], a[1], a[2]); return 0; }



예상이 잘 되시나요?


화면에는 이렇게 출력이 된답니다.


abc a b c



%s를 사용하여 a에 저장된 문자열이 다 출력되구요.


%c를 사용하여 a에 저장된 문자열을 하나씩 끊어서

출력할 수도 있답니다.



자, 이제 문자열을 사용하실 수 있으시겠죠? 

+ Recent posts