Language/C
[C언어] 배열 형태로 문자열 선언하기
깨구르르
2024. 4. 11. 17:41
728x90
방법
C언어에서 문자열은 문자 배열에 저장할 수도 있다.
형태는 아래와 같다.
char 배열이름[크기] = "문자열";
// 예시
char s1[10] = "Hello";
위처럼 코드를 작성하면 크기가 10인 char형 배열을 선언하고 문자열 Hello를 할당한 것이다.
문자열 리터럴을 포인터에 할당하는 방식과는 달리 문자열을 배열에 저장하는 방식은 배열 요소 하나하나에 문자가 저장된다.
아래 사진처럼 배열 안에 일렬로 나열된 문자가 모여 문자열을 이루게 된다.
문자열의 맨 뒤에 NULL이 들어가게 된다.
주의점
1) 배열을 선언한 즉시 문자열로 초기화해야 한다는 것이다.
배열을 미리 선언해놓고 문자열을 나중에 할당할 수는 없다.
char s1[10];
s1 = "Hello";
위와 같이 코드를 작성하면 에러가 난다.
2) 배열을 선언할 때는 배열의 크기를 할당할 문자열보다 크게 지정해야 한다.
char s1[10] = "Hello";
char s2[3] = "Hello";
Hello는 5글자이므로 크기가 10인 배열을 생성하는 방법은 옳은 방법이다.
하지만 크기가 3인 배열은 컴파일은 되지만 문자열을 출력했을 때 제대로 출력되지 않는다.
그렇다면 문자열 배열을 저장할 때 최소 크기는 얼마일까?
Hello는 5글자니까 배열의 크기는 5라고 생각하기 쉽다.
하지만, 문자열을 저장할 배열을 선언한다면 Hello 다섯 글자에 NULL 하나를 더해 6 이상이어야 한다.
참고
728x90