문자열
문자열은 연속된 문자들의 모임이다.
문자열은 상수와 변수로 나눌수 있고, "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, 문자열배열 에 대해서 알아보았다.
이것들을 잘활용하면 수많은 코드들을 쓸거를 단축하여 편리하게
'꿀 정보' 카테고리의 다른 글
HTML 웹페이지 동영상 넣기 (0) | 2020.04.23 |
---|---|
컴퓨터활용능력 1급 필기 합격 노하우,꿀팁 (0) | 2020.04.20 |
C언어 문자열배열 (0) | 2020.04.19 |
C언어 배열 1초팁 (0) | 2020.04.19 |
네트워크 접속장치 7가지 1초팁 (0) | 2020.04.19 |
엑셀 OFFSET 1초팁 (0) | 2020.04.19 |