- 단어를 컴퓨터 상에서 데이터로 처리하려면 메모리에 문자를 순서에 맞게 연속적으로 저장해야되며 배열이 단어를 저장하기에 좋은 방법이다. 모든 알파벳 문자는 한 바이트로 충분히 표현이 가능하므로 char 자료형 사용
1. char형 배열의 선언과 초기화
- 항상 저장할 문자열의 길이보다 최소한 하나 이상 크게 배열을 선택해야한다.
- null(\0) 문자 저장을 위함
2. null문자의 용도
- 남는 배열 요소에 0이 자동으로 채워지는 것
- 모든 문자는 아스키 코드 값으로 저장되므로 결국 널 문자는 아스키 코드 값이 0인 문자를 말한다.
- 상수로는 \0 으로 표현된다.
- 그래서 왜 필요하냐?
---> 문자열의 끝을 표현해주기 위해서
- null 문자가 없다면 이어지는 메모리 영역까지 출력하니 주의 ( 메모리 어딘가에 있는 널문자 까지.. )
3. 배열 선언 시 주의할 점
- 배열의 크기는 최대한 넉넉히
- 배열 요소의 개수는 최소한 문자열 길이 + 1이여야 한다. ( null 문자로 끝을 표기하므로 )
4. 문자열 대입
- 초기화 된 이후에도 얼마든지 새로운 문자열을 저장 가능하다.
- 문자열의 길이가 다를 수 있으므로 일반 변수처럼 대입 연산자는 사용 불가능
EX) strcpy 함수 사용
- char 형 배열에 새로운 문자열을 저장하는 함수
- 저장할 문자열의 길이를 파악하여 딱 그 길이만큼만 char형 배열에 복한다.
5. 문자열 전용 입출력 함수
- 빈칸을 포함한 새로운 문자열 입력, 출력 방식이 필요
- scanf() 를 이용해 문자을 입력받으면, 첫 번째 단어까지만 저장되지만 gets()와 fgets()를 사용하면 공백문자가 포함되어있는 문장을 입력받아 저장할 수 있다.
EX) Hello world! 를 입력 받으면
scanf() : Hello 까지만 입력
gets(), fgets() : Hello world! 문장 전체가 입력
EX) puts / printf
puts : 단순히 문자열만을 출력
printf : 문자열뿐만 아니라 정수, 실수, 문자를 출력
EX) 문자열 역순으로 출력
6. 문자열 라이브러리 함수