Skip to content

Commit ffda5c1

Browse files
committed
added lower and stringchars examples
1 parent 71abb16 commit ffda5c1

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,5 @@ in a controlled repository now.
3939
* `setimpl.rs`: example implementation of `HashSet` as `HashMap`
4040
* `rng/`: example use of `rand` crate
4141
* `charcast.rs`: character / number casting examples
42+
* `lower.rs`: boring character lowercase example
43+
* `stringchars.rs`: string ←→ chars conversion examples

charcast.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ fn main() {
88
println!("{:016x}", '🦀' as u64);
99

1010
println!("{}", 0x78u8 as char);
11+
// println!("{}", 0x1f980u32 as char); // Nope.
1112
}

lower.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
fn main() {
2+
let s: String = 'ß'.to_uppercase().collect();
3+
println!("{}", s);
4+
}

stringchars.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
fn main() {
2+
let s = "🦀hello";
3+
println!("nbytes {}", s.len());
4+
println!("nchar {}", s.chars().count());
5+
println!("{}", s.chars().nth(0).unwrap());
6+
let t: String = s.chars().take(5).collect();
7+
println!("{}", t);
8+
let u = s.as_bytes();
9+
println!("{:02x?}", u);
10+
let v = std::str::from_utf8(u).unwrap();
11+
println!("{}", v);
12+
let v = unsafe { std::str::from_utf8_unchecked(u) };
13+
println!("{}", v);
14+
let mut w = u.to_vec();
15+
w[0] = 0;
16+
println!("{}", unsafe { std::str::from_utf8_unchecked(&w) });
17+
}

0 commit comments

Comments
 (0)