안녕하세요. 스마트팩토리입니다.
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;
}
'C 언어' 카테고리의 다른 글
c 언어[026] 문자열과 배열(3) strcpy:문자열 복사, strcat(문자열 추가), 문자열 초기화 (0) | 2021.10.05 |
---|---|
c 언어[025] 문자열과 배열(2) strlen 문자열크기, 배열크기 (0) | 2021.10.04 |
c 언어[023] 배열 원소값 입력하고 배열 원소중 최대값(Max), 최소값(Min) 출력 (0) | 2021.10.02 |
c 언어[022] 배열 숫자 입력하고 배열값 순차출력, 거꾸로 출력 (0) | 2021.10.01 |
c 언어[021] 배열 숫자 입력하고 그 입력한 값을 거꾸로 출력하는 코드- 배열의 크기=배열 요소의 개수 (0) | 2021.09.30 |
댓글