u8 数组转换成 string

本文解决了一个Rust编程问题,原本尝试将u8类型数值直接推入String,导致编译错误。通过使用std::fmt::Write和write!宏,成功将u8值转换为十六进制字符串并输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

问题来自于rust英文论坛的一个问题,链接https://users.rust-lang.org/t/pushing-u8-values-to-a-string/36060, 错误代码如下:

fn main() {
    let mut signature_string = String::new(); 
    let signature_code =  [177,187,102,36,165,137,39,
	63,52,197,173,13,168,216,95,3,175,113,213,98,52,
	77,175,152,79,188,119,141,52,19,19,53,];
	
    for a in signature_code().iter() { 
		 println!(" N: {:x?}", a); 
		 signature_string.push(a);  
    }
	
    println!("the entire array HEX as a single string: {}", signature_string);
}

正确代码

思路,使用宏来解决,代码如下:

fn main() {
    use std::fmt::Write;

    let mut signature_string = String::new();
    let signature_code = [177,187,102,36,165,137,39,
	63,52,197,173,13,168,216,95,3,175,113,213,98,52,
	77,175,152,79,188,119,141,52,19,19,53,]; 
    
    //for a in signature_code().iter() { 
    for a in signature_code.iter() { 
        //println!(" N: {:x?}", a); 
        //signature_string.push(a);
        write!(signature_string, "{:02x}", a);
    }
	
    println!("the entire array HEX as a single string: {}", signature_string);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值