use std::io;
fn main() {
const STANDARD : i32 = 543;
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let mut year = input.split_whitespace();
let a: i32 = year.next().unwrap().parse().unwrap();
print!("{}", a - STANDARD);
}
const STANDARD : i32 = 543;
- 불기 연도와 서기 연도의 차이인 543을 상수 STANDARD로 선언합니다. 이 상수는 i32 형태의 정수입니다.
let mut input = String::new();
- 빈 문자열을 만들어 input 변수에 저장합니다. mut 키워드는 이 변수를 변경할 수 있게 합니다.
io::stdin().read_line(&mut input).unwrap();
- 사용자로부터 한 줄을 읽어 input 변수에 저장합니다. unwrap()
은 에러 처리를 위한 메소드
입니다.
3.1. Rust의 split_whitespace()
메소드는 주어진 문자열을 공백(스페이스, 탭, 줄바꿈 등)
을 기준으로 분할하고, 이를 통해 생성된 각 문자열에 대한 이터레이터
를 반환
합니다.
이터레이터는 컬렉션의 요소를 반복적으로 접근할 수 있는 객체로, next() 메소드
를 통해 다음 요소를 가져올 수 있습니다
. 이 때 next()는 Option을 반환
하며, 컬렉션의 요소가 더 이상 없을 때
는 None을 반환
합니다. 따라서 unwrap() 메소드를 사용해 Option에서 실제 값을 추출하였습니다.
그리고 parse() 메소드
를 이용하여 문자열을 원하는 데이터 타입
으로 변환
하였습니다. 이 경우에는 i32 타입으로 변환
하였습니다.
let mut year = input.split_whitespace()
; - input 문자열을 공백으로 분리하고, 이터레이터를 year 변수에 저장합니다.iter()
를 사용하는 대신 trim()
메서드를 사용하여 입력 문자열의 앞뒤 공백을 제거합니다. 그리고 parse()를 직접 input 문자열에 적용하여 정수로 변환함.
use std::io;
fn main() {
const STANDARD: i32 = 543;
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let a: i32 = input.trim().parse().unwrap();
println!("{}", a - STANDARD);
}
use std::io;
const THAI_YEAR_OFFSET: i32 = 543;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let year: i32 = match input.trim().parse::<i32>() {
Ok(y) => y - THAI_YEAR_OFFSET,
Err(_) => {
eprintln!("유효하지 않은 입력입니다. 올바른 연도를 입력하세요.");
return;
}
};
println!("변환된 연도: {}", year);
}
use std::io;
const THAI_YEAR_OFFSET: i32 = 543;
fn main() {
let year: i32 = read_input("불기 연도를 입력하세요: ");
let converted_year = convert_to_ad(year);
println!("서기 연도로 변환된 결과: {}", converted_year);
}
fn read_input(prompt: &str) -> i32 {
println!("{}", prompt);
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
input.trim().parse().unwrap()
}
fn convert_to_ad(year: i32) -> i32{
year - THAI_YEAR_OFFSET
}
이 코드는 함수를 사용하여 입력을 받고, 연도를 변환하는 로직을 분리하였습니다. read_input 함수는 사용자에게 프롬프트를 출력하고 입력을 받아서 변환된 연도를 반환합니다. convert_to_ad 함수는 받은 불기 연도를 서기 연도로 변환합니다.
main 함수에서는 read_input 함수를 호출하여 사용자로부터 불기 연도를 입력받고, convert_to_ad 함수를 사용하여 연도를 변환한 후 출력합니다.
이러한 함수 분리를 통해 코드를 모듈화하고 가독성을 높일 수 있습니다.
<?php
$handle = fopen("php://stdin", "r");
$year = intval(fgets($handle)); // 입력받은 불기 연도를 정수로 변환
$year = $year - 543; // 불기 연도에서 543을 빼서 서기 연도로 변환
echo $year;
fclose($handle);
?>