본문 바로가기
개념/혼자 공부하는 C언어

chapter 14) 여러 개의 동물 이름을 입출력하는 프로그램

by kiseno 2024. 9. 3.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    char animal[5][20];
    int i ,count;

    count = sizeof(animal) / sizeof(animal[0]);
    for (i = 0; i< count; i++){
        scanf("%s", animal[i]);
    }
    for (i = 0; i< count; i++){
        printf(" %s", animal[i]);
    }

    return 0;
}

 

### 배열 초기화 및 입력

- `char animal[5][20];`는 각각 최대 19개의 문자와 널 종료 문자(`\0`)를 저장할 수 있는 5개의 문자열 배열을 선언합니다. 이 배열은 5개의 동물 이름을 저장하는 데 사용됩니다.
- `count = sizeof(animal) / sizeof(animal[0]);`를 통해 `animal` 배열의 길이(즉, 저장할 수 있는 동물의 수)를 계산합니다. 이는 `animal` 배열 전체의 크기를 첫 번째 요소의 크기로 나누어 구합니다.

### 동물 이름 입력 받기

- for 루프를 사용하여 사용자로부터 동물의 이름을 입력 받습니다. 각 이름은 `scanf("%s", animal[i]);`를 사용하여 `animal` 배열의 해당 위치에 저장됩니다. `%s` 형식 지정자는 공백을 기준으로 문자열을 입력 받으므로, 동물 이름에 공백이 포함되어 있으면 그 전까지만 입력 받습니다.

### 입력된 동물 이름 출력

- 또 다른 for 루프를 사용하여 `animal` 배열에 저장된 모든 동물 이름을 순서대로 출력합니다. `printf(" %s", animal[i]);`를 사용하여 각 이름을 출력합니다.

### 주의사항

- 이 코드는 사용자로부터 입력을 받을 때 공백, 탭, 엔터 등을 문자열의 구분자로 사용합니다. 따라서 동물 이름에 공백이 포함된 경우 예상치 못한 방식으로 작동할 수 있습니다.
- `scanf`를 사용하여 문자열을 입력 받을 때, 배열의 크기를 초과하지 않도록 주의해야 합니다. 입력된 문자열이 배열의 크기를 초과하는 경우, 버퍼 오버플로우가 발생하여 프로그램이 예기치 않게 작동할 수 있습니다.

### 프로그램 종료

- `return 0;`은 프로그램이 성공적으로 실행되었음을 나타냅니다.

728x90
반응형
LIST