Bird
Raised Fist0
Rustprogramming~10 mins

Character type in Rust - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a character variable with the letter 'a'.

Rust
let letter: char = '[1]';
Drag options to blanks, or click blank then click option'
A'a'
B'ab'
Ca
D"a"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using double quotes instead of single quotes.
Not using quotes at all.
Using more than one character inside quotes.
2fill in blank
medium

Complete the code to print the Unicode code point of the character 'Z'.

Rust
let ch: char = 'Z';
println!("{}", ch [1] u32);
Drag options to blanks, or click blank then click option'
Ato_digit
Bto_ascii_uppercase
Cto_string
Das
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using to_digit without an argument.
Trying to call a method that doesn't exist for char.
Using string methods instead of char methods.
3fill in blank
hard

Fix the error in the code to check if a character is a digit.

Rust
let c = '5';
if c.[1]() {
    println!("It's a digit!");
}
Drag options to blanks, or click blank then click option'
Ais_alphanumeric
Bis_digit
Cis_numeric
Dis_alphabetic
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using is_digit() without arguments (it requires a radix).
Using is_alphabetic() which checks for letters.
4fill in blank
hard

Fill both blanks to create a map from characters to their uppercase versions for letters only.

Rust
let letters = ['a', 'b', 'c', '1'];
let uppercase_map: std::collections::HashMap<char, char> = letters.iter()
    .filter(|&&c| c.[1]())
    .map(|&c| (c, c.[2]()))
    .collect();
Drag options to blanks, or click blank then click option'
Ais_alphabetic
Bto_ascii_uppercase
Cis_numeric
Dto_lowercase
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Filtering numeric characters instead of alphabetic.
Using to_lowercase() instead of uppercase.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps characters to their Unicode code points if they are digits.

Rust
let chars = ['a', '3', '7', 'b'];
let digit_map: std::collections::HashMap<char, u32> = chars.iter()
    .filter(|&&c| c.[1]())
    .map(|&c| (c, c [2] [3]))
    .collect();
Drag options to blanks, or click blank then click option'
Ais_numeric
Bas
Cu32
Dis_alphabetic
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using is_alphabetic() instead of is_numeric().
Forgetting to cast the character to u32.

Practice

(1/5)
1. Which of the following correctly declares a char variable in Rust?
easy
A. let letter: char = `a`;
B. let letter: char = 'a';
C. let letter: char = a;
D. let letter: char = "a";

Solution

  1. Step 1: Understand Rust char syntax

    Rust uses single quotes for char literals, e.g., 'a'. Double quotes are for strings.
  2. Step 2: Check each option

    let letter: char = 'a'; uses single quotes correctly. let letter: char = "a"; uses double quotes (string). let letter: char = a; misses quotes. let letter: char = `a`; uses backticks, which is invalid.
  3. Final Answer:

    let letter: char = 'a'; -> Option B
  4. Quick Check:

    char uses single quotes [OK]
Hint: Remember: single quotes for char, double quotes for string [OK]
Common Mistakes:
  • Using double quotes instead of single quotes
  • Omitting quotes around the character
  • Using backticks instead of quotes
2. Which of the following is the correct way to assign the emoji ๐Ÿ˜€ to a char variable in Rust?
easy
A. let smiley: char = '๐Ÿ˜€';
B. let smiley: char = ๐Ÿ˜€;
C. let smiley: char = "๐Ÿ˜€";
D. let smiley: char = `๐Ÿ˜€`;

Solution

  1. Step 1: Recall char literal rules

    Rust char literals must be in single quotes, even for emojis.
  2. Step 2: Evaluate options

    let smiley: char = '๐Ÿ˜€'; uses single quotes correctly with the emoji. Double quotes ("๐Ÿ˜€") create a string. Bare ๐Ÿ˜€ lacks quotes. Backticks (`๐Ÿ˜€`) are invalid.
  3. Final Answer:

    let smiley: char = '๐Ÿ˜€'; -> Option A
  4. Quick Check:

    Emoji char uses single quotes [OK]
Hint: Use single quotes for any char, including emojis [OK]
Common Mistakes:
  • Using double quotes for char
  • Not quoting the emoji
  • Using backticks instead of single quotes
3. What will be the output of this Rust code?
let c: char = 'Z';
println!("{}", c.is_alphabetic());
medium
A. true
B. false
C. Z
D. Compile error

Solution

  1. Step 1: Understand is_alphabetic() method

    This method returns true if the char is a letter (A-Z or a-z or other alphabets).
  2. Step 2: Check the character 'Z'

    'Z' is an uppercase letter, so is_alphabetic() returns true.
  3. Final Answer:

    true -> Option A
  4. Quick Check:

    'Z'.is_alphabetic() = true [OK]
Hint: Check if char is letter with is_alphabetic() method [OK]
Common Mistakes:
  • Confusing output with printing the char itself
  • Thinking is_alphabetic() returns the char
  • Expecting a compile error
4. Identify the error in this Rust code snippet:
let ch: char = 'ab';
medium
A. Missing semicolon at the end
B. Use double quotes for multiple characters
C. char type cannot store letters
D. Multiple characters in single quotes are not allowed

Solution

  1. Step 1: Check char literal rules

    A char can only hold one Unicode character, so 'ab' is invalid.
  2. Step 2: Analyze the error

    Using multiple characters inside single quotes causes a compile error.
  3. Final Answer:

    Multiple characters in single quotes are not allowed -> Option D
  4. Quick Check:

    char holds one char only [OK]
Hint: char must be one character in single quotes [OK]
Common Mistakes:
  • Trying to store multiple characters in a char
  • Using double quotes for char
  • Ignoring compile errors
5. Given a string slice let s = "Rust ๐Ÿฆ€";, which Rust code correctly extracts the crab emoji as a char?
hard
A. let crab = s.chars().nth(4).unwrap();
B. let crab = s[5];
C. let crab = s.chars().nth(5).unwrap();
D. let crab = s[4..5].chars().next().unwrap();

Solution

  1. Step 1: Understand string and char indexing in Rust

    Rust strings are UTF-8 encoded. The string "Rust ๐Ÿฆ€" has 6 chars: 'R'(0),'u'(1),'s'(2),'t'(3),' '(4),'๐Ÿฆ€'(5). Crab emoji is the 6th character (index 5), counting chars, not bytes.
  2. Step 2: Check each option

    let crab = s.chars().nth(5).unwrap(); correctly uses chars().nth(5) to get the crab emoji. let crab = s.chars().nth(4).unwrap(); gets the space (index 4). let crab = s[5]; uses byte index (u8, not char). let crab = s[4..5].chars().next().unwrap(); byte slice yields space.
  3. Final Answer:

    let crab = s.chars().nth(5).unwrap(); -> Option C
  4. Quick Check:

    Use chars().nth(5) for crab emoji [OK]
Hint: Use chars().nth(index) to get char by position [OK]
Common Mistakes:
  • Indexing string bytes directly
  • Using wrong index for emoji
  • Not unwrapping Option from nth()
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard