C언어에서 문자열(string)은 여러 개의 문자를 나열한 것입니다.
예를 들어 이름, 주소, 메시지 같은 텍스트를 처리할 때 문자열을 사용합니다.
하지만 C언어에서는 문자열도 결국 문자 배열로 다룹니다.
다른 언어처럼 고급 기능은 없지만, 구조를 이해하면 더 강력하게 쓸 수 있습니다.
● 문자열은 문자 배열
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
문자들을 배열로 저장하고, 마지막에 반드시 '\0' (널 문자)를 넣어야 문자열로 인식됩니다.
● 문자열 리터럴로 초기화
char str[] = "Hello";
위 코드는 내부적으로 {'H', 'e', 'l', 'l', 'o', '\0'} 와 동일합니다.
● 문자열 출력
printf("%s\n", str);
%s를 사용하면 문자열 전체를 출력할 수 있습니다.
● 문자열 입력
char name[20];
scanf("%s", name);
scanf 로 문자열을 입력받을 수 있지만, 공백 전까지만 저장된다는 제한이 있습니다.
● 문자열 관련 주의사항
- 문자열의 끝은 반드시 '\0'로 마무리되어야 합니다.
- 배열 크기를 충분히 지정하지 않으면 오버플로우가 발생할 수 있습니다.
- 문자 하나는 'A', 문자열은 "A" 로 구분합니다.
문자열은 단순한 문자들의 모음이지만, 프로그램에서 사람과 소통하는 거의 모든 데이터는 문자열입니다.
문자열을 배열로 이해하고 안전하게 다루는 습관을 들이는 것이 중요합니다.
● 실습 문제
문제 1
"Hello"라는 문자열을 문자 배열로 직접 초기화하세요.
문제 2
문자열 "C programming"을 저장할 수 있는 배열을 선언하고 출력하세요.
문제 3
scanf로 이름을 입력받아 출력하는 코드를 작성하세요.
문제 4
문자 'A'와 문자열 "A"의 차이를 설명하세요.
문제 5
문자열의 끝에 반드시 포함되어야 하는 특별한 문자는 무엇인가요?
▶ 정답 확인하기
정답 1
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
정답 2
char msg[] = "C programming";
printf("%s\n", msg);
정답 3
char name[20];
scanf("%s", name);
printf("이름: %s\n", name);
정답 4
'A' 는 문자 1개를 의미하는 char이고,
"A" 는 문자 + '\0'이 포함된 문자열입니다.
정답 5
문자열의 끝에는 반드시 '\0' (널 문자)가 포함되어야 합니다.
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter45. 문자열 입력과 출력 – 사용자와 소통하는 가장 기본적인 방법 (1) | 2025.04.18 |
---|---|
[C언어][초급] Chapter44. 문자열 배열 – 여러 개의 문자열을 한 번에 저장하는 방법 (0) | 2025.04.18 |
[C언어][초급] Chapter42. 2차원 배열의 활용 – 반복문과 함께 행렬을 다루는 방법 (0) | 2025.04.18 |
[C언어][초급] Chapter41. 2차원 배열 선언과 초기화 – 행과 열로 구성된 데이터 저장 방식 (0) | 2025.04.18 |
[C언어][초급] Chapter40. 1차원 배열의 활용 – 반복문과 함께 사용하는 배열 예제 (0) | 2025.04.18 |