티스토리 뷰





저번 C언어 공부 1편에서는 배열의 기본에 대해서 공부하였다.

2018/09/11 - [컴퓨터 공부/C언어] - [C언어공부#1] 배열을 이해하자, 활용법, 예제



문자열


문자열은 연속된 문자들의 모임이다.

문자열은 상수와 변수로 나눌수 있고, "Hello World"처럼 큰따옴표("")로 묶어서 표시한다.

printf함수의 형식 문자열대표적인 문자열 상수이다. 문자열상수를 자열 리터이라고도 한다.



이제 문자배열이란것을 알아보자.


문자배열은 선언할 때 " 저장할 문자열의 길이 + 1"만큼 배열의 크기를 지정할수 있다.



char str[10];  <------------ 길이가 9인 문자열을 저장한다.




배열의 예를 들면




이런식으로 문자배열을 할수 있다.


여기서 \(역슬래쉬)0 에 대해서 궁금하실텐데,

결론부터말하자면 문자열의 끝에는 항상 널 문자를 저장해야 한다.

\0은 '널 문자' 라고 한다. 널문자는 특수 문자인 \0으로 나타낸다.



다음 두문장은 같은 의미이다.



str[3] = '\0';

str[3] = 0;



저번 배열과 같이 저렇게 귀찮게 많이 쓸필요없이 문자배열의 초기화 를통해서 한번에 쓸수있다.


char str[4] = {'a', 'b', 'c', '\0'};


이런식으로 말이다. 하지만 이방법보다는 문자열 상수를 이용한 초기화 방법이 주로 사용된다.

문자열 상수로 초기화할 때는 컴파일러가 자동으로 문자열의 끝에 널 문자를 저장해준다.


char str[4] = "abc" ;


만약 초기값으로 지정된 문자열보다 문자 배열의 크기가 더 크면, 배열의 나머지 원소가 널 문자로 초기화된다.

지정된 문자열보다 문자 배열의 크기가 더 작으면, 컴파일 경고가 발생한다.



char str[4] = "ab";  <-----------str 배열은 'a' , 'b' , 'c' , '\0', '\0'으로 초기화된다.

char str[4] = "abcde";  <----------컴파일 경고!



또,  초기값을 지정할 때 문자 배열크기를 생략할수 있다.


char str[ ] = "Hello"  ;

이렇게 생략을 하면 str의 크기는 6으로 된다. H E L L O (5 + 1)


이제 문자배열의 사용예를 알아보자.


이해가 안되시는거 있으시면 댓글을남겨주시면 감사하겠습니다!



문자열에는 문자열 처리 함수라는것도 있다 한번 알아보자.




문자열 처리 함수


문자열 처리 함수는 라이브러리 함수이므로 <stdio.h>와 같이 먼저 라이브러리 헤더 파일을 포함하고 사용해야한다.

문자열 처리함수의 헤더 파일은 <string.h>이다.


문자열 처리함수에는 strcpy 라는 함수가 있다.

strcpy함수는 src 문자열을 dest 문자 배열로 복사하는 함수이다.


strcpy(dest, src) ;


이것이 strcpy함수의 기본적인 형식이다.


stycpy 함수의 첫 번째 인자로는 변경할 문자 배열의 이름을 써준다 (dest), 두 번째 인자로는 원본 문자열을 지정한다.(src)

strcpy함수는 두번째 인자로 지정한 문자열을 첫 번째 인자인 문자배열로 복사 해주는 함수이다.



strcpy(str1, "abcde"); <-------"abcde"를 str1으로 복사한다.





예를 하나들어보겠다.


이제좀 이해가 갈것이다.



다음으로 strcat함수를 알아보자.

strcat함수는 첫번째 인자인 문자 배열의 맨 끝에 두 번째 인자인 문자열을 복사해서 연결해준다.




이런식으로 abcde에 12345가 연결된다.



다음은 마지막으로 문자열 배열이다.

문자열배열, 즉 문자열을 여러 개 저장하는 배열이라는 의미이다.


문자열배열


문자열배열은 이차월 배열로 선언해야한다. 그러므로 배열의 1크기 2크기를 지정해야한다.

여기서, 2크기는 저장할문자열의 크기+1로 지정하고, 1크기는 필요한 문자열의 개수를 지정한다.


최대 길이가 5인 문자열을 3개 지정하려면

char s[ 3 ][ 6 ];

---> char형을 3x6만큼 메모리에 할당한다.


char s[3][6]; 에서 첫번째 문자열에 접근하려면 s[0] 이렇게 지정하면된다.



-strlen 함수는 널 문자를 제외한 문자열의 크기를 구한다 라는뜻


이런식으로 하면 문자열 배열의 개념은 익힌것이다.



오늘 c언어공부는 문자열, 문자열 처리함수strcpy,strcat, 문자열배열 에 대해서 알아보았다.

이것들을 잘활용하면 수많은 코드들을 쓸거를 단축하여 편리하게 작성할수있을거같다.


댓글
댓글쓰기 폼