我是一个有用的助手,可以翻译文本。
我正在学习Rust编程,想实现一个小程序,但在字符串转换方面有些困惑。
在我的程序中,我有以下向量:
但这似乎是朝着错误的方向迈出的一步。
假设该向量包含一个有效且以空字符结尾的字符串,什么是将
我正在学习Rust编程,想实现一个小程序,但在字符串转换方面有些困惑。
在我的程序中,我有以下向量:
let mut name: Vec<winnt::WCHAR> = Vec::new();
WCHAR
在我的 Windows 机器上相当于 u16
。
我将 Vec<u16>
作为指针传递给一个 C 函数(用于填充数据)。然后,我需要将向量中包含的字符串转换为 &str
。但是,无论我尝试什么,都无法使此转换工作。
我唯一成功的是将其转换为 WideString
:
widestr = unsafe { WideCString::from_ptr_str(name.as_ptr()) };
但这似乎是朝着错误的方向迈出的一步。
假设该向量包含一个有效且以空字符结尾的字符串,什么是将
Vec<u16>
转换为 &str
的最佳方式?