Menu
CoddyTech

문자열 변환

Coddy Rust 여정의 기초 섹션에 포함된 레슨. 75개 중 71번째.

숫자형을 문자열로 변환하려면 to_string() 메서드를 사용할 수 있습니다. 이 메서드는 정수와 부동 소수점 숫자를 포함한 대부분의 데이터 형식에서 사용할 수 있습니다.

예를 들면 다음과 같습니다:

let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);

이 예에서는 i32 변수 number를 String으로 변환합니다.

문자열을 숫자형으로 변환하려면 parse() 메서드를 사용할 수 있습니다. 이 메서드는 파싱된 숫자 또는 변환에 실패한 경우 오류를 포함하는 결과를 반환합니다.

예를 들면:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);

이 예제에서는 parse() 메서드를 사용해 문자열 number_str을 i32로 변환합니다. 변환이 성공했다고 가정하고 Result에서 값을 추출하는 데 unwrap() 메서드를 사용합니다.

변환에 실패하면 프로그램은 패닉 상태가 됩니다(실패합니다).

다른 숫자형과 함께 parse()를 사용할 수도 있습니다:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);

이 경우 문자열 float_str을 f64로 변환합니다.

challenge icon

챌린지

쉬움

convert_and_print라는 이름의 함수를 만들고, 다음 세 개의 인수를 받도록 하세요.

  1. 문자열 슬라이스 s: &str. 텍스트로 작성된 숫자입니다(예: "123.67"). to_string이 false일 때만 사용됩니다.
  2. 부동 소수점 수 n: f64: 부동 소수점 숫자입니다. to_string이 true일 때만 사용됩니다.
  3. 불리언 to_string: bool: 수행할 작업을 결정합니다.

함수는 다음 작업을 수행해야 합니다.

  • to_string이 true인 경우: .to_string()을 사용해 n을 문자열로 변환한 다음, 문자열에 포함된 숫자 문자의 개수를 셉니다(점 .과 빼기 기호 -는 세지 마세요). 다음 형식으로 출력합니다.
    Number: [string], Digits: [num of digits]

    예를 들어, n = -321.198623인 경우 문자열 형태는 "-321.198623"이며, 숫자 문자는 9개입니다(-와 .는 세지 않음).

    힌트: n을 문자열로 변환한 다음, 문자열에 .len()을 사용하고 문자열에 포함된 . 또는 -마다 1을 빼세요.
  • to_string이 false인 경우: .parse()를 사용해 문자열 s를 f64로 파싱한 다음, i32로 형 변환합니다(소수 부분은 버려집니다). 다음 형식으로 출력합니다.
    String as number: [number]

    예를 들어, s = "123.67231"인 경우 출력은 String as number: 123입니다.

convert_and_print를 두 번 호출하세요.

  1. 첫 번째 호출에서는 to_string을 false로 설정합니다. 이때 문자열 s를 사용하고 n은 무시합니다.
  2. 두 번째 호출에서는 to_string을 true로 설정합니다. 이때 숫자 n을 사용하고 s는 무시합니다.

직접 해보기

use std::io;

fn convert_and_print(s: &str, n: f64, to_string: bool) {
    // 여기에 코드를 작성하세요
}

fn main() {
    let mut input_number_str = String::new();
    let mut input_n = String::new();

    io::stdin().read_line(&mut input_number_str).unwrap();
    io::stdin().read_line(&mut input_n).unwrap();

    let n: f64 = input_n.trim().parse().unwrap();
    let number_str = input_number_str.trim();

    // to_string = false로 convert_and_print를 호출하세요
    
    
    // to_string = true로 convert_and_print를 호출하세요
    
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Rust 컴파일러