我有一个CString,我正在从磁盘上阅读。我用CStr::from_bytes_until_nul
创建了它。但我的最终目标是拥有一个String
,而不是一个CString
。我试图将我的CString
存储到一个需要String
的结构中。有没有一个方法可以将CString转换为String?
一个字符串是拥有和似乎,
- 保证没有内部
\0
- 保证有一个终端
\0
一个String
也拥有。它似乎,
- 保证内容是utf8。
为什么没有一个从CString到String的.try_into()
,它把终端\0
拉出来并 Package str::from_utf8(mycstring)
?
2条答案
按热度按时间k5ifujac1#
CString
本身有一个方法into_string,它可以完成你想做的事情。uyhoqukh2#
您可以使用
to_str()
将CString
转换为String
,当成功时,它会给您一个&str
(例如,您的CString
只包含有效的UTF-8字符),然后可以通过调用to_string()
将其转换为String
。下面是一个简短的例子:
字符串
Rust Explorer的链接
关于你的第二个问题,我认为没有理由不进行
try_into
转换,所以我的猜测是,到目前为止,它还没有实现。还有一个Open issue on Github请求的正是这个。