How do I convert from a char array [char; N] to a string slice &str?

后端 未结 2 1473
失恋的感觉
失恋的感觉 2021-01-24 06:08

Given a fixed-length char array such as:

let s: [char; 5] = [\'h\', \'e\', \'l\', \'l\', \'o\'];

How do I obtain a &str<

2条回答
  •  走了就别回头了
    2021-01-24 06:41

    I will give you a very simple functional solution but it's not the best one. You can learn some basics:

    let s: [char; 5] = ['h', 'e', 'l', 'l', 'o'];
    let mut str = String::from("");
    for x in &s {
        str.push(*x);
    }
    println!("{}", str);
    

    Before the variable names you can put an underscore if you want to keep the signature, but in this simple example it is not necessary. The program starts by creating an empty mutable String so you can add elements (chars) to the String. Then we make a for loop over the s array by taking its reference. We add each element to the initial string. At the end you can return your string or just print it.

提交回复
热议问题