소개
이 랩에서는 C 프로그래밍에서 문자열 배열을 생성하고 반복하는 방법을 배우게 됩니다. 문자열 배열을 선언하고, while 루프를 사용하여 반복하며, 널 종료 문자열을 처리하고, 배열의 각 문자열을 출력합니다. 이러한 기술은 텍스트 데이터를 사용하고 더 복잡한 C 애플리케이션을 구축하는 데 필수적입니다.
이 랩은 다음 단계를 다룹니다: 문자열 배열 선언, while 루프를 사용한 배열 반복, 널 종료 문자열 처리, 배열의 각 문자열 출력, C 프로그램 컴파일 및 실행. 이 랩을 완료함으로써 C 프로그래밍의 기본 개념인 C 에서 문자열 배열을 사용하는 방법에 대한 확실한 이해를 얻게 될 것입니다.
문자열 배열 선언
이 단계에서는 C 프로그래밍에서 문자열 배열을 선언하는 방법을 배우게 됩니다. 문자열 배열은 여러 문자열을 단일 변수에 저장할 수 있는 강력한 데이터 구조입니다.
- WebIDE 를 열고
~/project디렉토리에string-array.c라는 새 파일을 생성합니다:
cd ~/project
touch string-array.c
- WebIDE 에서 파일을 열고 다음 코드를 추가합니다:
#include <stdio.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
}
이 코드는 C 에서 문자열 배열을 선언하는 방법을 보여줍니다. 주요 구성 요소를 자세히 살펴보겠습니다:
const char*는 상수 문자열 포인터의 배열을 나타냅니다.fruits[]는 배열의 이름입니다.- 배열에는 문자열로 4 개의 과일 이름이 포함되어 있습니다.
NULL은 배열의 끝을 표시하는 데 사용되며, 이는 향후 반복에서 유용합니다.
이 배열은 널 종료 (null-terminated) 되어 있다는 점에 유의하십시오. 즉, 마지막 요소는 NULL입니다. 이는 C 에서 문자열 배열에 대한 일반적인 관행이며, 반복 중에 배열의 끝을 결정하는 데 도움이 됩니다.
While 루프를 사용하여 배열 순회
이 단계에서는 C 프로그래밍에서 while 루프를 사용하여 문자열 배열을 반복하는 방법을 배우게 됩니다. 이전 단계를 기반으로 string-array.c 파일을 수정하여 fruits 배열의 내용을 출력합니다.
- WebIDE 에서
string-array.c파일을 엽니다: - 배열을 반복하기 위한 while 루프를 포함하도록 코드를 업데이트합니다:
#include <stdio.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
int i = 0;
while (fruits[i]) {
printf("Fruit: %s\n", fruits[i]);
++i;
}
}
반복 로직을 자세히 살펴보겠습니다:
int i = 0은 인덱스 카운터를 초기화합니다.while (fruits[i])는 NULL 종결자에 도달할 때까지 루프를 계속합니다.printf("Fruit: %s\n", fruits[i])는 각 과일 이름을 출력합니다.++i는 다음 요소로 이동하기 위해 인덱스를 증가시킵니다.
- 프로그램을 컴파일합니다:
gcc string-array.c -o string-array
- 컴파일된 프로그램을 실행합니다:
./string-array
예시 출력:
Fruit: Apple
Fruit: Banana
Fruit: Cherry
Fruit: Date
while 루프를 사용하면 배열의 끝을 알리는 NULL 종결자를 확인하여 배열을 반복할 수 있습니다. 이 방법은 C 에서 문자열 배열을 순회하는 일반적이고 효율적인 방법입니다.
Null 종료 문자열 처리
이 단계에서는 널 종료 문자열과 C 프로그래밍에서 문자열 배열의 끝을 표시하는 데 어떻게 사용되는지 배우게 됩니다. 널 종료를 이해하는 것은 문자열 배열 작업에 매우 중요합니다.
- WebIDE 에서
string-array.c파일을 엽니다: - 널 종료 및 문자열 길이를 보여주도록 코드를 수정합니다:
#include <stdio.h>
#include <string.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
int i = 0;
while (fruits[i]) {
printf("Fruit: %s\n", fruits[i]);
printf("Length of %s: %lu\n", fruits[i], strlen(fruits[i]));
++i;
}
printf("Total number of fruits: %d\n", i);
}
주요 수정 사항:
strlen()함수를 사용하기 위해#include <string.h>를 추가했습니다.- 문자열 길이를 보여주기 위해
strlen()을 사용했습니다. - 루프 인덱스를 사용하여 총 과일 수를 추가했습니다.
- 프로그램을 컴파일합니다:
gcc string-array.c -o string-array
- 컴파일된 프로그램을 실행합니다:
./string-array
예시 출력:
Fruit: Apple
Length of Apple: 5
Fruit: Banana
Length of Banana: 6
Fruit: Cherry
Length of Cherry: 6
Fruit: Date
Length of Date: 4
Total number of fruits: 4
널 종료 이해:
- 배열의 끝에 있는
NULL은 센티넬 값 (sentinel value) 역할을 합니다. - 반복 중에 배열의 끝을 결정하는 데 도움이 됩니다.
strlen()은 널 종결자 (\0) 에 도달할 때까지 문자를 계산하여 작동합니다.- 루프는
NULL포인터를 만나면 중지됩니다.
배열 내 각 문자열 출력
이 단계에서는 서식 옵션 및 고급 인쇄 기술을 포함하여 배열에서 문자열을 출력하는 다양한 방법을 살펴봅니다.
- WebIDE 에서
string-array.c파일을 엽니다: - 여러 인쇄 기술을 보여주도록 코드를 업데이트합니다:
#include <stdio.h>
#include <string.h>
void main() {
const char* fruits[] = {
"Apple",
"Banana",
"Cherry",
"Date",
NULL
};
// Method 1: Basic printing with index
printf("Method 1: Basic Printing\n");
int i = 0;
while (fruits[i]) {
printf("%d: %s\n", i + 1, fruits[i]);
++i;
}
// Method 2: Formatted printing with alignment
printf("\nMethod 2: Formatted Printing\n");
i = 0;
while (fruits[i]) {
printf("| %-10s | Length: %2lu |\n", fruits[i], strlen(fruits[i]));
++i;
}
// Method 3: Printing with additional formatting
printf("\nMethod 3: Advanced Printing\n");
i = 0;
while (fruits[i]) {
printf("Fruit #%d: [%s] has %lu characters\n",
i + 1, fruits[i], strlen(fruits[i]));
++i;
}
}
- 프로그램을 컴파일합니다:
gcc string-array.c -o string-array
- 컴파일된 프로그램을 실행합니다:
./string-array
예시 출력:
Method 1: Basic Printing
1: Apple
2: Banana
3: Cherry
4: Date
Method 2: Formatted Printing
| Apple | Length: 5 |
| Banana | Length: 6 |
| Cherry | Length: 6 |
| Date | Length: 4 |
Method 3: Advanced Printing
Fruit #1: [Apple] has 5 characters
Fruit #2: [Banana] has 6 characters
Fruit #3: [Cherry] has 6 characters
Fruit #4: [Date] has 4 characters
시연된 인쇄 기술:
printf()를 사용한 기본 인덱싱- 너비 및 정렬을 사용한 서식 있는 인쇄
- 추가 정보를 사용한 고급 서식
- 문자열 길이를 얻기 위한
strlen()사용
요약
이 랩에서는 C 프로그래밍에서 문자열 배열을 선언하는 방법을 배웠습니다. 이를 통해 여러 문자열을 단일 변수에 저장할 수 있습니다. 또한 while 루프를 사용하여 배열을 반복하고, 널 종료 문자열을 처리하며, 배열의 각 문자열을 출력하는 방법도 배웠습니다. 이러한 기술은 C 에서 문자열 데이터 구조를 사용하는 데 기본이며, 더 고급 문자열 조작 작업에 대한 견고한 기반을 제공합니다.



