SPRING :: NOTE
[C] 문자열을 입력하여, 출력하는 프로그램 코드 본문
반응형
문제
문자열 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으로 하였다.
반응형
'Development Language > C · C++ · MFC' 카테고리의 다른 글
[C] 주어진 문자열에서 대소문자를 변환하여 출력하는 코드 (0) | 2023.04.25 |
---|---|
[C] 문자열 반복해서 출력하는 프로그램 작성 (0) | 2023.04.25 |
[libvlc] gdipImageencoders의 libvlc.dll에서 찾을 수 없는 문제 (0) | 2019.08.18 |
[C++] CString to UINT 형변환 (0) | 2019.07.23 |
[C++/MFC] libvlc(VLC library)를 이용하여 RTP over RTSP 옵션 추가 (0) | 2019.07.16 |
Comments