본문 바로가기
C 언어

c 언어[024] 문자열과 배열(1) 문자열 출력 char arr[100] = { 'H','e','l','l','o' }; char arr1[100] = "hello \n";

by Smart Factory in 2020 2021. 10. 3.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 

c 언어[024] 문자열과 배열(1) 문자열 출력 char arr[100] = { 'H','e','l','l','o' }; char arr1[100] = "hello \n";에 대해 알아보겠습니다 

1. 배열과 문자열

가. 문자열

  c 언어 문자열
- 문자를 열거한 것
- 배열로 표현하는 방법
- char로 문자 하나하나씩 ' ' 로 묶는 방법
- char " 문자열"로 쓰는 방법 -- 이 방법이 간편함.

2. 문자열 출력

가. 문자열 출력

 

char arr[100] = { 'H','e','l','l','o' };

char 형으로 하나씩 하나씩 입력하는 방법으로 인덱스는순차적으로 진행 합니다. 
마지막 '0' 은 마지막을 알려주는 일종의 형식으로 배열 원소 null 값으로 출력은 되지 않지만 한 자리를 차지합니다. 

char arr1[100] = "hello \n";

두번째 방식은 " " 안에 적는 방식으로 여기서 null값은 표시 하지 않습니다. 

""의 의미가 마지막에 null값이 있는 것으로 간주합니다. 

printf("arr = %s\n",arr);

문자열 출력 형식 지정자는 %s (string 으로 문자열을 의미합니다.)

#include<stdio.h>

int main() {
char arr[100] = { 'H','e','l','l','o' };
char arr1[100] = "hello \n";

printf(arr);
printf("\n");
printf("arr = %s\n",arr);
printf(arr1);
printf("arr1 = %s\n", arr1);
}

 

가. 문자열의 주소값 출력

배열변수를 printf 함수로 출력을 하면 형식 지정자가 어떻게 지정되느냐에 따라서 주소값과 배열 값으로 나옵니다. 

printf("%p\n",arr);  --> 주소값 출력
printf("%p", &arr[0]); --> 인덱스 0번 값의 주소값

배열의 주소값과 인덱스 0번 값의 주소값은 동일합니다. 


printf("%p\n",arr);  --> 주소값 출력
printf("arr = %s\n",arr);

형식 지정자에 의해서 주소값이 나오기도 하고 , 배열 값이 그대로 출력됩니다.

#include<stdio.h>

int main() {
char arr[100] = { 'H','e','l','l','o' };
char arr1[100] = "hello \n";

printf("%p\n",arr);  --> 주소값 출력
printf("%p", &arr[0]); --> 인덱스 0번 값의 주소값

printf("\n");
printf("arr = %s\n",arr);
printf(arr1);  ---> 형식 지정자 없는 경우도 출력이 되기는 하지만 오류나는 경우가 있습니다. 
printf("arr1 = %s\n", arr1);
}

나. 문자열의 크기 확인 

char arr[6] = { 'H','e','l','l','o'};
배열의 크기가 6인 것을 알 수 있습니다 .한글짜씩 넣을 때는 마지막에 /0 이 하나 있는 것으로 ~~ 해서 넣어주어야 합니다. 

char arr1[] = "hello";

" " 는 자동으로 null이 들어가는 것으로 간주합니다. 

printf("arr 의 크기 :%d", sizeof(arr) / sizeof(char));

sizeof(arr)은 배열의 크기 총크기를 의미하면 이를 해당 배열의 요소가 할당하는 크기 char로 나누면 배열의 크기가 나옵니다. 

 

#include<stdio.h>

int main() {
char arr[6] = { 'H','e','l','l','o'};
char arr1[] = "hello";

printf("arr 의 크기 :%d", sizeof(arr) / sizeof(char));
printf("\n");
printf("arr1의 크기 %d", sizeof(arr1) / sizeof(char));
printf("\n");
printf("arr = %s\n",arr);
printf("arr1 = %s\n", arr1);
return 0;
}
728x90
반응형

댓글