Преобразование String в CStr и обратно в rust

Несколько фрагментов кода для преобразования rust String в std::ffi::CStr/std::ffi::CString и обратно.

Строка в CString/CStr

use std::ffi::CStr;
use std::ffi::CString;

fn main() {
   let s = "Hello World!".to_string();
   let c_string: CString = CString::new(s.as_str()).unwrap();
   let c_str: &CStr = c_string.as_c_str();
   println!("{:?}", c_str);
}
Вход в полноэкранный режим Выход из полноэкранного режима

CStr в строку

use std::ffi::CStr;

fn main() {
   let c_str: &CStr = CStr::from_bytes_with_nul(b"Hello World!").unwrap();
   let s: String = c_str.to_string_lossy().into_owned();
   println!("{:?}", s);
}
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий