Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 문자, 문자열, 문장을 읽고 쓰는 프로그램 만들기


C 언어를 사용해 문자 한 개, 문자열, 그리고 문장(공백을 포함한 문자열)을 차례대로 입력받아 그대로 출력하는 프로그램을 만들어 보겠습니다. 여기서 문자열의 최대 크기는 500으로 설정합니다.

예를 들어 입력이 다음과 같다고 가정해 봅시다.

character = 'T'
string = "ProgrammingLanguage"
sentence = "I love programming through C"

그렇다면 출력 결과는 다음과 같습니다.

Your character: T
Your string: ProgrammingLanguage
Your sentence: I love programming through C

문제 해결 접근 방법

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 문자(character)를 입력받을 때는 scanf("%c", &character);를 사용합니다.

  • 문자열(string)을 입력받을 때는 scanf("%s", string);을 사용합니다. 참고로 %s는 공백이나 줄바꿈을 만나면 입력을 중단합니다.

  • 이 단계는 선택 사항이지만, 상황에 따라 반드시 필요할 수 있습니다. 때때로 프로그램이 다음 입력을 기다리지 않고 건너뛰는 문제가 발생하는데, 이때 fflush(stdin)으로 입력 버퍼를 비워 주면 해결됩니다.

  • 공백이 포함된 문장을 입력받을 때는 fgets() 함수를 사용합니다. 첫 번째 매개변수는 문자열을 저장할 배열, 두 번째는 최대 크기, 마지막은 콘솔(표준 입력)로부터 데이터를 받기 위한 stdin입니다.

  • 마지막 항목은 문자열의 끝을 나타내는 줄바꿈(new line) 문자가 필요하다는 의미입니다. 이를 처리하지 않으면 공백까지 모두 문자열에 포함되어 버립니다.

예제 코드

다음 구현 예제를 통해 더 자세히 이해해 보겠습니다.

#include <stdio.h>
int main(){
    char character;
    char string[500];
    char sentence[500];
    scanf("%c", &character);
    scanf("%s", string);
    fflush(stdin);
    fgets(sentence, 500, stdin);
    printf("Your character: %c\n", character);
    printf("Your string: %s\n", string);
    printf("Your sentence: %s\n", sentence);
}

입력

T
ProgrammingLanguage
I love programming through C

출력

Your character: T
Your string: ProgrammingLanguage
Your sentence: I love programming through C

핵심 정리

  • 단일 문자 입력에는 scanf("%c"), 공백 없는 문자열에는 scanf("%s")를 사용합니다.

  • 공백이 포함된 문장은 fgets()로 입력받아야 하며, 버퍼에 남은 줄바꿈 문자를 제거하기 위해 fflush(stdin) 호출이 필요할 수 있습니다.

  • fgets()는 줄바꿈 문자까지 함께 저장하므로, 필요하다면 별도로 제거하는 것이 좋습니다.