2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법(C,C++,Python,JAVA)

2-5. 말하는 거울

원당컴1 2024. 5. 3. 09:40

문제: “말하는 거울”

당신은 마법의 거울을 가진 마법사가 되어, 사용자가 말하는 모든 것을 반복하는 프로그램을 만들고자 합니다. 사용자는 어떤 문장이든 마음속으로 생각하고, 당신의 프로그램은 그 문장을 입력받아 화면에 그대로 출력해야 합니다. 이 마법 같은 거울을 위한 프로그램을 작성해 보세요.

요구 사항:

  1. 프로그램은 사용자에게 어떤 문장이든 생각하라고 안내합니다.
  2. 사용자가 문장을 입력하면, 프로그램은 "거울이 말합니다: [입력받은 문장]"이라고 출력합니다.
  3. 입력과 출력은 명확하고 사용자 친화적이어야 합니다.

 

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)

#정보올림피아드

#검단신도시코딩

#원당동코딩

#마전동코딩

#왕길동코딩

#당하동코딩

#아라동코딩

#풍무동코딩

#불로동코딩

#검단동코딩

#검암동코딩

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'프로그래밍언어문법(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