SPRING :: NOTE

[C] 문자열을 입력하여, 출력하는 프로그램 코드 본문

Development Language/C · C++ · MFC

[C] 문자열을 입력하여, 출력하는 프로그램 코드

RAYZIE 2023. 4. 25. 14:57
반응형
문제
문자열 str이 주어질 때, str을 출력하는 코드를 작성

제한사항
1 ≤ str의 길이 ≤ 1,000,000
str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어짐.

기본적으로 C언어에서 문자열을 입력받는 부분은 scanf를 사용하여 다음과 같이 구현할 수 있다.

#include <stdio.h>

int main() {
    char str[1000001];
    scanf("%s", str);
    printf("%s\n", str);
    return 0;
}

위 코드는 입력으로 문자열을 받아 출력한다.

scanf 함수를 이용하여 문자열을 입력받고, printf 함수를 이용하여 문자열을 출력한다.

%s는 문자열을 입력받을 때 사용되는 서식지정자이다. 이를 이용하여 문자열을 입력받을 수 있다.

출력 시, %s를 이용하여 문자열을 출력할 수 있다.


그러나 입력으로 문자열의 길이가 최대 1,000,000으로 매우 크기 때문에, 입력과 출력에 대한 최적화가 필요하다.

예를 들면, fgets 함수를 사용하여 입력을 받는다면, 문자열의 길이를 제한할 수 있고,

입력 버퍼를 비우는 등의 추가적인 작업이 가능하다.

 

또한, puts 함수를 사용하여 문자열을 출력하면, 자동으로 개행문자를 출력하기 때문에

printf 함수를 사용하는 것보다 편리하다.

 

따라서, 아래와 같이 코드를 수정할 수 있다.

#include <stdio.h>

int main() {
    char str[1000001];
    fgets(str, sizeof(str), stdin);
    puts(str);
    return 0;
}

위 코드에서는 fgets 함수를 이용하여 문자열을 입력받고, puts 함수를 이용하여 문자열을 출력한다.

fgets 함수는 입력 버퍼의 크기와 입력 최대 길이를 지정할 수 있다.

여기에서는 sizeof(str)을 이용하여 입력 버퍼의 크기를 구하였고, 최대 길이는 제한사항에 따라 1,000,000으로 하였다.

반응형
Comments