문제: “말하는 거울”
당신은 마법의 거울을 가진 마법사가 되어, 사용자가 말하는 모든 것을 반복하는 프로그램을 만들고자 합니다. 사용자는 어떤 문장이든 마음속으로 생각하고, 당신의 프로그램은 그 문장을 입력받아 화면에 그대로 출력해야 합니다. 이 마법 같은 거울을 위한 프로그램을 작성해 보세요.
요구 사항:
- 프로그램은 사용자에게 어떤 문장이든 생각하라고 안내합니다.
- 사용자가 문장을 입력하면, 프로그램은 "거울이 말합니다: [입력받은 문장]"이라고 출력합니다.
- 입력과 출력은 명확하고 사용자 친화적이어야 합니다.
1. C언어
#include <stdio.h>
int main() {
char secretSentence[256]; // 문자열을 저장할 충분한 크기의 배열을 선언합니다.
// 사용자에게 문자열 입력을 요청합니다.
printf("마음속으로 어떤 문장이든 생각해보세요.\n");
printf("생각한 문장을 입력해주세요: ");
// 사용자로부터 문자열을 입력받습니다.
// gets 함수는 보안에 취약하므로 fgets를 사용하는 것이 좋습니다.
fgets(secretSentence, sizeof(secretSentence), stdin);
// 입력받은 문자열을 출력합니다.
printf("거울이 말합니다: %s", secretSentence);
return 0;
}
문자열은 char를 여러개 모아 놓은 배열입니다.
그래서 자료형을 char 타입의 배열 형태로 선언합니다.
한 문장을 입력받기 위해서 fgets를 사용하는데 fgets(변수명,크기,입력스트림) 형태로 사용됩니다.
여기서 sizeof(secretSentence) 의 의미는 secretSentence 의 배열의 크기 256 을 의미합니다.
출력은 서식문자 %s를 사용합니다.
2. C++
#include <iostream>
#include <string>
int main() {
std::string secretSentence; // 문자열을 저장할 변수를 선언합니다.
// 사용자에게 문자열 입력을 요청합니다.
std::cout << "마음속으로 어떤 문장이든 생각해보세요.\n";
std::cout << "생각한 문장을 입력해주세요: ";
// 입력 스트림에서 개행 문자가 남아있지 않도록 합니다.
std::cin.ignore();
// 사용자로부터 문자열을 입력받습니다.
std::getline(std::cin, secretSentence);
// 입력받은 문자열을 출력합니다.
std::cout << "거울이 말합니다: " << secretSentence << std::endl;
return 0;
}
cin.ignore()는 이전 입력에 남아 있을 수 있는 개행 문자를 무시하고 getline()을 이용하여 한 문장을 입력 받겠다는 의미입니다.
여기서 using namespace std; 를 선언하지 않았기 때문에 std:: 를 사용하는 것을 확인 할 수 있습니다.
3. Java
import java.util.Scanner;
public class TalkingMirror {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자에게 문장 입력을 요청합니다.
System.out.println("마음속으로 어떤 문장이든 생각해보세요.");
System.out.print("생각한 문장을 입력해주세요: ");
// 사용자로부터 문장을 입력받습니다.
String secretSentence = scanner.nextLine();
// 입력받은 문장을 출력합니다.
System.out.println("거울이 말합니다: " + secretSentence);
// 스캐너를 닫습니다.
scanner.close();
}
}
한줄의 문장을 입력 받기 위해서는 nextLine()으로 입력 받습니다.
4. Python
# 사용자에게 문자열 입력을 요청합니다.
print("마음속으로 어떤 문장이든 생각해보세요.")
secret_sentence = input("생각한 문장을 입력해주세요: ")
# 입력받은 문자열을 출력합니다.
print(f"거울이 말합니다: {secret_sentence}")
파이썬은 기본적으로 한줄의 문장을 입력 받습니다.
요약
C언어 : 한 문장을 입력 받을 때 fgets 를 사용합니다.
C++ : 한 문장을 입력 받을 때 getline()을 사용합니다.
java : 한 문장을 입력 받을 때 nextLine()을 사용합니다.
Python : input()은 무조건 한 문장을 입력 받습니다.
인천 검단 원당컴퓨터 학원(T 032-565-5497)
#정보올림피아드
#검단신도시코딩
#원당동코딩
#마전동코딩
#왕길동코딩
#당하동코딩
#아라동코딩
#풍무동코딩
#불로동코딩
#검단동코딩
#검암동코딩
'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글
2.7 두명의 실수 왕자 (6) | 2024.05.21 |
---|---|
2-6.공간의 마술사 (8) | 2024.05.08 |
2-4. 단어의 숲을 거닐다. (10) | 2024.04.26 |
2-3. 실수의 발견 (5) | 2024.04.24 |
2-2. 문자의 마법사 (7) | 2024.04.12 |