一串十六进制以每两位形式转换成字符串

本文详细解析了一段用于将字符串转换为十六进制的C代码,包括使用`strcpy`复制字符串,`sscanf`进行格式化读取,以及如何实现字符串到十六进制的高效转换。

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

例如 

121209055822010053

转换后为 
cc953a161035


#include <stdio.h>
#include <string.h>

int main()
{
	char hex[200];
	char s[100];
	strcpy(hex,"98e1e97b3294cd43260aa8766dd21b9e354f5926d34f9b5fa510e84937316992a740a46b41d3e4fbe4ec285b2bc992db5f12d3cc0388e726b00f80fadd73f77846b40e8c75bb90739a484ec60a2c38422411f418e5ae075ac16194a3b1a60bd3");
	int L=strlen(hex), i, v;
	for (i=0;i<L/2;i++) 
	{
		sscanf(hex+i*2,"%2X",&v);
		s[i]=(char)(v&0xFFu);
	}

	s[i]=0;
	printf("%s\n",s);
		
	L=strlen(s);
	for (i=0;i<L;i++) 
	sprintf(hex+2*i,"%02x",(unsigned char)s[i]);

	hex[2*i+2]=0;
	printf("%s\n",hex);
}

以上代码输出:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值