Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 23SS 스트라이프 오버핏 셔츠 723033 V2L30 9066
- 대림디움 대림바스플랜 PL-3070 탑카운터형 세면대/욕실/화장실/세면도기
- 굿아이템 양면오픈형 투명 접이식 리빙박스 폴딩박스 옷정리함 수납박스 펜트리수납함
- 22FW 로고 패치 포켓 체크 셔츠 2F000 03 M2359 F41
- 두칸 프릴 오버핏 후드티
- 러버메이드 벤티드 브루트(75L) 원형 컨테이너 리빙박스
- 봄봄 골드라인 4023G 탑볼세면대 화이트골드 카운타 도기볼 카페세면대
- 내셔널지오그래픽 피너스 빅로고 라운드넥 긴팔 티셔츠 카본 블랙
- ipTIME 유무선공유기
- 오토비 AZ100TR 32G 전후방 FHD 2채널 트럭 화물차 전용 블랙박스 보증기간 2년 20m케이블 포함 후방 적외선 방수 AS 2년보장
- 더블탭스 22SS 정글 01 셔츠 WTAPS JUNGLE 01 GREIGE M
- 코멧 접이식 투명 리빙박스 56L 대형 2개입
- 올리비아 스텐 세면대 세트
- 8052 블랙라인 정사각 세면기
- 잡잡 NBR 요가매트 스탠다드 운동매트 10mm 퍼플
- ChatGPT
- 네스파 다야몬드은박 후드티
- 반스 올드스쿨 VN000D3HY28
- 리빙앤트리 펠리컨 박스 대
- 1개
- 22FW 이바나 빈티지 체크 셔츠 더스트핑크 8054631
- [제이앤제나] 허리에 무리없는 신생아부터 역류방지쿠션_앨리펀블루 역류방지쿠션
- 미네 리빙다이닝 6인 원목 코너형 식탁세트(소파형)
- 톰브라운 명품톰브라운 23SS 더블페이스 니트 아우터형 포켓 셔츠 MJT291A 07545 415
- 긍정
- list #pop #remove #del #append #insert #list형 #파이썬 파이썬 기본 문법 #파이썬 list
- 샤오미 미밴드 7 스마트밴드
- 삼성 갤럭시워치5
- 위드리빙 대용량 옷 수납 방수 바구니
- 남쪽나무 세면대 세면대 세트 (스마트거울) 벽걸이세면대 이케아세면대 세면기
Archives
- Today
- Total
냥집사의 개발일지
C언어 - 배열 (Array) : 문자 배열의 선언 & 초기화 본문
반응형
안녕하세요~ 오늘은 문자 배열에 대해서 정리해보려 합니다.
저번 포스팅에서는 일반 정수 배열에 대해 정리해두었으니 참고해주세요~
2022.09.05 - [C언어] - C언어 - 배열 (Array) : 배열의 선언 & 초기화
그럼 지금부터 알기 쉽게 예제를 보며 공부해봅시다~
1. 문자 배열의 선언
아래 코드처럼 문자 배열을 선언하기 위해서는 일반 정수 배열과 같이
"자료형 배열 이름[배열 크기]"를 적어주면 됩니다.
char arr[5]; // data type : char, array name : arr, array size : 5
2. 문자 배열의 선언 및 초기화
2가지의 문자 배열을 초기화하는 방법이 있습니다.
2.1 선언한 문자 배열에 문자열 상수로 초기화하기
char str[6] = "apple"; // data type : char, array name : str, array size : 6
2.2 선언한 문자 배열에 문자 상수로 따로따로 초기화하기
char str[6] = {'a','p','p','l','e'}; // data type : char, array name : str, array size : 6
(중요!!)문자 배열을 선언 및 초기화할 때 주의해야 하는 점이 있는데요.
바로 문자열 끝에는 무조건 널문자를 저장해주어야한다는 것입니다.
(널문자는 문자열의 끝을 나타내는 것이므로 만약 널문자가 없으면 문자열이
메모리에 출력될 때 임의의 널문자를 만날때까지 출력되기 때문에 메모리 낭비가 발생합니다. )
#include <stdio.h>
int main(){
char str[] = "Hello"; // data type : char, array name : str, array size : 10
printf("str[5] : %c\n", str[5]);
printf("str[5] : %d\n", str[5]); //ASCII 0 == NULL
str[5] = '!';
printf("%s\n", str); //print as a string type
return 0;
}
str 배열을 초기화해 준 순간 str[5]에는 널문자가 들어간 것을 확인할 수 있습니다.
(NULL 문자의 ASCII 코드 : 0)
str[5]에 널문자 이외의 임의의 문자를 할당해주면 Compiler는 문자열의 끝을 알 수 없으므로
쓰레기 값을 출력하게 됩니다.
3. 문자 배열 관련 함수
3.1 strcpy : 문자열 복사 함수
string.h 헤더 파일에 선언되어 있습니다.
strcpy 함수 원형 : strcpy(para1, para2)
para2의 문자열이 para1으로 복사되는 기능의 함수입니다.
#include <stdio.h>
#include <string.h>
int main(){
char str1[10];
char str2[10];
strcpy(str1,"Hello"); // allocate Hello into str1
strcpy(str2, str1); // allocate str1 into str2
printf("%s, %s\n", str1, str2);
return 0;
}
str1, str2 모두 Hello가 할당된 것을 확인할 수 있습니다~
3.2 gets: 문자열 입력 함수
gets함수 원형 : gets(para)
Enter('\n')를 입력의 끝이라고 간주하는 문자열 입력 함수입니다.
(scanf는 Enter, Tab, Space 모두 입력의 끝이라고 간주)
3.3 puts: 문자열 출력 함수
puts함수 원형 : puts(para)
문자열'만' 출력할 수 있는 출력 함수입니다.
(printf는 문자열, 정수, 문자 모두 출력할 수 있는 출력 함수)
#include <stdio.h>
int main(){
char str[10];
printf("Input string :");
gets(str);
printf("str : ");
puts(str);
return 0;
}
gets 함수로 문자열을 입력받고 puts함수로 문자열을 출력한 것을 확인할 수 있습니다~
오늘은 문자 배열의 선언 및 초기화 또한 문자 배열과 관련된 몇 가지 함수들을 알아보았습니다!!
다음 포스팅에서는 배열의 영원한 친구 포인터에 대해 정리해보려 합니다!
그럼 좋은 하루 보내세요~
'C언어' 카테고리의 다른 글
C언어 - 포인터 (Pointer) : 포인터 & 주소 (0) | 2022.09.09 |
---|---|
C언어 - 포인터 (Pointer) : 기본 개념 (0) | 2022.09.07 |
C언어 - 배열 (Array) : 배열의 선언 & 초기화 (0) | 2022.09.05 |
C언어 - VSCode C/C++ 개발환경 세팅 : C / C++ Extension 설치 및 json 파일 세팅(Windows) (0) | 2022.09.04 |
C언어 - VSCode C/C++ 개발환경 세팅 : MSYS2(mingw64 Compiler) 설치 (Windows) (0) | 2022.09.03 |
Comments