pub fn main() {
let s = "123.123";
println!("{:?}", s.char_indices());
let mut s1 = String::from("123456");
let s2: &mut str = &mut s1;
let mut s2ptr = s2.as_mut_ptr();
unsafe {
s2ptr = s2ptr.offset(1);
}
let yes = "y̆es";
let subs = &yes[1..3];
println!("{}, len: {}", yes, yes.len());
println!("subs: {:?}", subs);
let c: char = yes.chars().nth(0).unwrap(); let a = &c; println!("{:?}", yes.chars().nth(0));
let mut peak = yes.char_indices().peekable();
let a = peak.peek();
peak.nth_back(1);
let mut indices = yes.char_indices();
println!("{:?}", indices.next());
println!("{:?}", indices.next());
println!("{:?}", indices.next());
println!("a{}b", indices.next().unwrap().1);
let str_content = "Hello, world!";
let mut byte_content: Vec<u8> = str_content.as_bytes().to_vec();
let ptr = byte_content.as_ptr();
let offset = 0; let first_byte = unsafe { *ptr.offset(offset) };
let second_byte = unsafe { *ptr.offset(offset + 1) };
println!("First byte: {}, Second byte: {}", first_byte, second_byte);
println!("First byte: H: {}, Second byte: e: {}", b'H', b'e');
let mut ptr = byte_content.as_mut_ptr();
unsafe {
ptr = ptr.add(1);
};
unsafe { *ptr = b'I' };
let first_b = unsafe { *ptr };
println!("First byte: {}", first_b);
}