이전에는 하나의 문자열을 저장하는 방법을 배웠습니다.
이번에는 여러 개의 문자열을 한 번에 저장할 수 있는 문자열 배열을 알아보겠습니다.
문자열 배열은 문자 배열들의 배열로 생각할 수 있습니다.
즉, 2차원 배열을 사용해서 여러 줄의 텍스트를 저장하는 방식입니다.
● 문자열 배열 선언 방법
char names[3][20];
- 3개의 문자열을 저장할 수 있습니다.
- 각 문자열은 최대 19글자 + 널문자('\0')까지 저장됩니다.
● 문자열 배열 초기화
char fruits[3][10] = {
"apple",
"banana",
"grape"
};
각 줄은 개별 문자열처럼 초기화됩니다.
단, 열의 크기(여기서는 10)는 문자열의 최대 길이를 고려해야 합니다.
● 문자열 배열 출력
for (int i = 0; i < 3; i++) {
printf("%s\n", fruits[i]);
}
배열 이름과 인덱스를 이용해 각 문자열을 출력할 수 있습니다.
● 문자열 배열 입력
for (int i = 0; i < 3; i++) {
printf("%d번째 단어 입력: ", i + 1);
scanf("%s", names[i]);
}
scanf를 사용해 각 줄에 문자열을 저장할 수 있습니다.
공백이 포함된 문자열을 입력받으려면 gets 함수 또는 fgets 함수를 사용해야 하며,
보안상 fgets 함수 사용을 권장합니다.
문자열 배열은 이름 목록, 과일 목록, 도시 목록 등 여러 문자열을 저장할 때 유용하게 사용됩니다.
입력과 출력 모두 반복문과 함께 쓰면 간편하게 처리할 수 있습니다.
● 실습 문제
문제 1
3개의 도시 이름을 저장할 수 있는 문자열 배열을 선언하세요.
문제 2
아래 값으로 초기화된 과일 배열을 선언하세요: apple, mango, peach
문제 3
문자열 배열에 이름을 입력받아 출력하는 코드를 작성하세요. (3개)
문제 4
문자열 배열을 사용하면 어떤 점이 좋은지 한 가지 장점을 설명하세요.
문제 5
문자열 배열의 각 요소에 접근하는 방법을 설명하세요.
▶ 정답 확인하기
정답 1
char cities[3][20];
정답 2
char fruits[3][10] = {
"apple",
"mango",
"peach"
};
정답 3
char names[3][20];
for (int i = 0; i < 3; i++) {
scanf("%s", names[i]);
}
for (int i = 0; i < 3; i++) {
printf("%s\n", names[i]);
}
정답 4
여러 문자열을 하나의 배열로 관리할 수 있어 코드가 간결하고 정리하기 쉽습니다.
정답 5
배열 이름과 인덱스를 사용하여 접근합니다. 예: names[0], cities[2] 등
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter46. 문자열 함수 – strlen 함수로 문자열 길이 재기 (1) | 2025.04.18 |
---|---|
[C언어][초급] Chapter45. 문자열 입력과 출력 – 사용자와 소통하는 가장 기본적인 방법 (1) | 2025.04.18 |
[C언어][초급] Chapter43. 문자열의 개념 – 문자의 집합을 다루는 기초 이해하기 (0) | 2025.04.18 |
[C언어][초급] Chapter42. 2차원 배열의 활용 – 반복문과 함께 행렬을 다루는 방법 (0) | 2025.04.18 |
[C언어][초급] Chapter41. 2차원 배열 선언과 초기화 – 행과 열로 구성된 데이터 저장 방식 (0) | 2025.04.18 |