変更可能な文字列を取り、最初と最後の文字が"
文字であるかどうかを確認する関数を記述します。その場合は、これらの2文字をバックティック文字`
に置き換える必要があります。特定のASCII文字を文字列内の他のASCII文字と置き換える簡潔で安全な方法
fn replace_wrapping_char(s: &mut String) {
if s.len() > 1 && s.starts_with('"') && s.ends_with('"') {
unsafe {
let v = s.as_mut_vec();
v[0] = '`' as u8;
*v.last_mut().unwrap() = '`' as u8;
}
}
}
はこれが(真はい、'`'.is_ascii()
リターン)を動作するようですが、それはunsafe
と私には少し醜いを使用しています。私は、このソリューションを作ってみました。
私が欲しいものを達成するための安全で簡潔な方法はありますか?
https://stackoverflow.com/questions/26544542/modifying-chars-in-a-string-by-index –
あなたは、文字列全体がASCIIになりますかどうかを知る、またはでありますか最初/最後の文字がASCIIであることが保証されているだけですか? – Shepmaster
@Shepmaster私は文字列のアスキー文字について何も知らない。最初の/最後の文字が '' 'の場合、それらはascii(明らかに...)です。そうでなければ保証はありません。 –