如何将数字字符串转为16进制字符串?

请教一个示例:
如何将数字字符串转为16进制字符串?
字符串:char str[20]=“1234567890123456”;
将中间的“789012”转换为16进制的“0C0A14”;
最后str="1234560C0A143456"

如果有描述不清的地方,请指出。
多谢!

你先用字符串截取到, 比如strstr等,"789012”
然后可以用下面这个转成十六进制字符串

 sprintf( buffer,"%x", s );

然后再把字符串头,更新的字符串,字符串尾连接起来,

  sprintf( buffer,"%s%s%s", a, b, c );

自己写个转换函数,应该不难。具体思路是解析每个字符判断然后转变后的结果再返回。

字符串第7位到第10位转换?

你这是字符替换吧? 最笨的办法就是循环一下。

可以先将字符串分为三个部分,“123456”,“789012”,“3456”
取出“789012” ,用atoi函数将“789012”转换为int型,在用sprintf将三部分拼接在一起,其中789012用格式化
%06X
如果位数要更改可以用
%0*X
其中*号的值从参数列表提供。

16进制字符串是不包含7,8,9,0吗