(언어 : C++)#코드업 100제 #1022

2022. 4. 5. 18:49알고리즘/알고리즘 문제 풀이(C++)

*문제

공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.

 

예시)

char data[2001];

fgets(data, 2000, stdin);

printf("%s", data);

 

위와 같이 실행하면 공백이 포함된 문장을 키보드(stdin)로 입력받아

최대 2000자까지 data[ ] 공간에 저장하고 출력할 수 있다.

 

%s 는 문자열(string, 실로 연결된 문자들. 문장)로 출력하라는 의미이다.

 

참고)

fgets( ) 를 사용하면 공백문자가 포함되어잇는 문장을 입력받아 저장할 수 있다.

만약, 아래처럼

scanf("%s", ... ) 를 이용해 문장을 입력받으면, 첫 번째 단어까지만 저장된다.

 

char data[51] = ""; //최대 50문자까지 저장 가능

scanf("%s", data);

 

공백이 포함되어 있는 한 문장이 입력된다.

, 입력되는 문장은 여러 개의 단어로 구성되고, 엔터로 끝나며,

최대 길이는 2000 문자를 넘지 않는다.

 

---

 

*풀이

#include <stdio.h>

 

int main(){

char x[2001];

fgets(x, 2000, stdin);

printf("%s", x);

return 0;

}

 
---
 
*참고

fgets 함수

함수원형 : char* fgets(char* str, int num, FILE* pFile);

: 함수이름인 fgetsfile + get + string? stream? 을 조합한 이름입니다.

 

파일에서 부터 string(=문자열)get 가지고 옵니다.

, 파일로 부터 문자열을 가지고 오는 함수입니다.

 

*함수설명

첫번째 인자 : 파일에서 부터 가지고 온 문자열을 넣는 변수 입니다. 문자열을 가리키는 캐릭터 타입의 포인터

두번째 인자 : 한번에 가지고올 문자열의 길이를 넣는 변수 입니다.

세번째 인자 : 파일의 파일 포인터를 집어 넣습니다.

반환형 : 가지고 온 문자열을 반환하거나, 파일의 끝에 도달했을때는 널 포인터 반환.