본문 바로가기

[기초] C언어

문자열

- 단어를 컴퓨터 상에서 데이터로 처리하려면 메모리에 문자를 순서에 맞게 연속적으로 저장해야되며 배열이 단어를 저장하기에 좋은 방법이다. 모든 알파벳 문자는 한 바이트로 충분히 표현이 가능하므로 char 자료형 사용

알파벳
출력창

 

1. char형 배열의 선언과 초기화

- 항상 저장할 문자열의 길이보다 최소한 하나 이상 크게 배열을 선택해야한다.

- null(\0) 문자 저장을 위함

입력창
출력창

2. null문자의 용도

- 남는 배열 요소에 0이 자동으로 채워지는 것

- 모든 문자는 아스키 코드 값으로 저장되므로 결국 널 문자는 아스키 코드 값이 0인 문자를 말한다.

- 상수로는 \0 으로 표현된다.

- 그래서 왜 필요하냐?

---> 문자열의 끝을 표현해주기 위해서

- null 문자가 없다면 이어지는 메모리 영역까지 출력하니 주의 ( 메모리 어딘가에 있는 널문자 까지.. )

 

3. 배열 선언 시 주의할 점

- 배열의 크기는 최대한 넉넉히

- 배열 요소의 개수는 최소한 문자열 길이 + 1이여야 한다. ( null 문자로 끝을 표기하므로 )

 

4. 문자열 대입

- 초기화 된 이후에도 얼마든지 새로운 문자열을 저장 가능하다.

- 문자열의 길이가 다를 수 있으므로 일반 변수처럼 대입 연산자는 사용 불가능

EX) strcpy 함수 사용

- char 형 배열에 새로운 문자열을 저장하는 함수

- 저장할 문자열의 길이를 파악하여 딱 그 길이만큼만 char형 배열에 복한다.

입력창
출력창

5. 문자열 전용 입출력 함수

- 빈칸을 포함한 새로운 문자열 입력, 출력 방식이 필요

fgets
출력창

- scanf() 를 이용해 문자을 입력받으면, 첫 번째 단어까지만 저장되지만 gets()와 fgets()를 사용하면 공백문자가 포함되어있는 문장을 입력받아 저장할 수 있다.

 

EX) Hello world! 를 입력 받으면

scanf() : Hello 까지만 입력

gets(), fgets() : Hello world! 문장 전체가 입력

 

EX) puts / printf

puts : 단순히 문자열만을 출력

printf : 문자열뿐만 아니라 정수, 실수, 문자를 출력

 

EX) 문자열 역순으로 출력

입력창
츨력창

6. 문자열 라이브러리 함수

'[기초] C언어' 카테고리의 다른 글

포인터  (2) 2024.06.11
구조체  (0) 2024.06.05
함수심화, 활용  (0) 2024.05.29
함수  (0) 2024.05.27
2차원 배열  (0) 2024.05.27