생선이의 잡다한 블로그

C언어 강좌 5 - 귀찮으니 배열을 사용하자! 문자열 본문

프로그래밍/C언어 강좌

C언어 강좌 5 - 귀찮으니 배열을 사용하자! 문자열

생선스프 2017. 3. 7. 20:30
반응형


안녕하세요 생선스프입니다~!
이번에는 배열과 문자열을 다뤄보도록 하겠습니다


C 언어 강좌 4 - 변수로 값을 저장하자!


우선 배열이 무엇일까요?


만약 변수가 100개가 필요하다고 하겠습니다

그러면 int num1, num2, num3 ... num100; 이럴수는 없습니다!

그래서 사용하는게 배열입니다


우선 배열은 아래와 같이 적어줍니다

int num[100];

이렇게 변수명 뒤에 만들어주고싶은만큼 갯수를 적어주시면 됩니다


그러면 값은 어떻게 넣어줄까요?

num[0= 0;
num[1= 1;

이렇게 변수명 뒤에 숫자를 적어주고 그 뒤부터는 같습니다


아니면 또 다른 방법이 있습니다

배열을 만들때가 아닌 만들고 나서라면 어쩔수 없지만

위와 같이 적어주면 여러줄을 써야하고 귀찮습니다


그래서 아래와 같이 적어줄 수 있습니다

int num[100= {0,1,2,3,4,5,6,7,8,9,10};

이렇게 적어주면 0부터 차례대로 값이 들어가게 됩니다


그런데 저희는 10까지 넣었는데 그 뒤는 어떤값이 들어가나요?
아예 아무값도 들어가는것이 아닌가요?

라고 생각이 들겠지만 그 뒤는 모두 0 으로 채워지게 됩니다

즉 num[9] 까지는 순서대로 들어가고 나머지는 0 이 들어가게되는거죠


그리고 0 부터 시작하니 100개를 만든다고하면 0~99 개 까지가 생기게 되는거죠


하지만 여기서 한가지 문제가 생깁니다

저번 강좌에서도 말했듯이 함수는 초기화를 해주어야합니다(사용하기 전까지는 안해도되긴하지만)


그러면 일일이 또 100개 다 초기화해주어야하는 귀찮은 일이 생길까요?


그럼 보통 일반적으로 나중에 배울 반복문을 이용하여 초기화하려고 할겁니다


하지만 이것보다 더 쉬운 방법이 있습니다


처음에 함수를 선언할때


int num[100= {0};


이렇게 해주면 됩니다


아까 위에서 말했듯이 하나만 0 으로 채워져도 나머지는 자동으로 0 이 채워지기 때문이죠



이제 다음으로 넘어가겠습니다

저희가 변수를 만들다보면 이런 숫자나 단일문자 말고도 문자열이라는 값을 넣어주어야합니다


문자열은 어떻게 만들까요?

자료형에도 문자열을 저장하는 건 없었는데요


여기서 또 배열이 등장합니다


문자열과 그나마 제일 비슷한 자료형이 char 였습니다

char 는 단일문자를 저장하는 자료형이였죠

그러면 char 를 여러개 이어두면..?

문자열을 저장할 수 있겠네요!


아래와 같이 선언할 수 있습니다

char str[100];


이렇게 선언을 하면 char 가 100개, char는 1바이트였으니

총 100바이트의 문자열을 저장할 수 있습니다


우선 값을 넣기 전에 먼저 알고 가야할게 있습니다


영어, 숫자, 특수문자등 유니코드표에 있는것들은 1바이트

한글은 2바이트

문자열이 끝남을 알려주는 NULL 값 1바이트


즉 "ABC" 를 저장하면 4바이트

"가나다" 를 저장하면 7바이트

"가A나B" 를 저장하면 7바이트가 되는것이죠


이제 값을 넣어봐야죠

이것 역시 방법이 여러가지 있습니다

char str[100= "가나다라마바사";


이렇게 하는 방법이 있고 선언 후에 대입하는 법은 strcpy 라는 함수와 scanf 로 넣어줄 수 있긴 하지만...

다음 강좌에 해보도록 하겠습니다!


강좌 읽어주셔서 감사합니다~!


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments