目的
- 競技プログラミングでの問題解決の効率が良くなること
- ECサイトなどでの複雑な入力方法に対処できるようになること
1行で1個の文字列の場合
文字列を1行から読み取り、そのまま出力するシンプルな例です。
例
入力:hello
出力:hello
use std::io::stdin;
fn main(){
let a = input();
println!("{}",a);
}
fn input()->String{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().parse().unwrap();
}
1行で1個の数字の場合
1行から数字を読み取り、3倍して出力します。
例
入力:3
出力:9
use std::io::stdin;
fn main(){
let a = input();
println!("{}",a*3);//三倍
}
fn input()->isize{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().parse().unwrap();
}
1行でN個の文字列を空白で区切って配列にする場合
1行から複数の文字列を読み取り、配列に変換します。
例
入力:a b c d
出力:["a", "b", "c", "d"]
use std::io::stdin;
fn main(){
let a = input();
println!("{:?}",a);
}
fn input()->Vec<String>{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}
1行でN個の数字を空白で区切って配列にする場合
1行から複数の数字を読み取り、それぞれ3倍して配列に変換します。
例
入力:1 2 3 4
出力:[3,6,9,12]
use std::io::stdin;
fn main(){
let mut a = input();
a = a.iter().map(|x| x*3).collect();//三倍
println!("{:?}",a);
}
fn input()->Vec<usize>{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}
N行でN個の文字列を空白で区切って配列にする場合
複数行から複数の文字列を読み取り、二次元配列に変換します。
例
入力:
おはよう こんにちは こんばんは
Goodmorning Goodafternoon Goodevening
出力:
[["おはよう", "こんにちは", "こんばんは"],
["Goodmorning", "Goodafternoon", "Goodevening"]]
use std::io::stdin;
fn main(){
let mut vector = Vec::new();
loop{
let mut a = input();
if a.len() == 0 {
break;
}
vector.push(a.clone());
}
println!("{:?}",vector);
}
fn input()->Vec<String>{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}
N行でN個の数字を空白で区切って配列にする場合
複数行から複数の数字を読み取り、それぞれ3倍して二次元配列に変換します。
例
入力:
1 2 3
4 5 6
出力:
[[3, 6, 9],
[12, 15, 18]]
use std::io::stdin;
fn main(){
let mut vector = Vec::new();
loop{
let mut a = input();
if a.len() == 0 {
break;
}
a = a.iter().map(|e| e*3).collect();
vector.push(a.clone());
}
println!("{:?}",vector);
}
fn input()->Vec<usize>{
let mut a = String::new();
stdin().read_line(&mut a).unwrap();
return a.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}