Rust:如何使用 Rust 将 CString 转换为 String?

问题描述 投票:0回答:1

我有一个正在从磁盘读取的 CString。我用

CStr::from_bytes_until_nul
创建了它。不过,我的最终目标是拥有
String
,而不是
CString
。我正在尝试将我的
CString
存储到需要
String
的结构中。有没有从 CString 转换为 String 的方法?

一个 CString 被拥有并且似乎是,

  • 保证没有内线
    \0
  • 保证有终端
    \0

A

String
也拥有。看来,

  • 保证内容为utf8。

为什么没有从 CString 到 String 的

.try_into()
来拉出终端
\0
并包裹
str::from_utf8(mycstring)

string rust type-conversion c-strings
1个回答
0
投票

您可以使用

CString
String
 转换为 
to_str()
,成功时会为您提供
&str
,然后可以通过调用
String
将其转换为
to_string()

这是一个简短的示例:

let cstring = CString::new("A string.").unwrap();
let string = cstring.to_str().unwrap().to_string();

以及 Rust Explorer 的链接。

© www.soinside.com 2019 - 2024. All rights reserved.