c语言字体颜色代码16进制,求C语言16进制字符串转化成字符串的步骤。100分

c语言字体颜色代码16进制,求C语言16进制字符串转化成字符串的步骤。100分求 C 语言 16 进制字符串转化成字符串的方法

大家好,欢迎来到IT知识分享网。

求C语言16进制字符串转化成字符串的方法。100分!

我有一段类似这样的字符串:”7C7C307C724C7C267C7C7C7C7C3A7C417C7C7″ 其中每两位两位的代表一个字符,类似:“7C”对应“|”、“24”对应“$”、“41”对应“A”、“26”对应“&”等等。。。想用纯C写这样一个函数,跪求大神帮忙,求思路求代码!

分享到:

更多

——解决方案——————–

char hex[101];

char s[51];

strcpy(hex,”7C7C307C724C7C267C7C7C7C7C3A7C417C7C”);

L=strlen(hex);

for (i=0;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

hex[2*i+2]=0;

printf(“%s\n”,hex);

——解决方案——————–

读字符,转数据,设Bit

就是ASCII码,不需要查表

思路就这样,代码没有,以上

——解决方案——————–

楼主可以看看这个:

#include 

#include 

#include 

using namespace std;

int main(int argc, char *argv[])

{

char st[]=”7C7C307C724C7C267C7C7C7C7C3A7C417C7C7C”;

int ch[strlen(st)/2];

char c[strlen(st)/2];

printf(“十六进制 十进制   字符\n”);

for(int i=0;i

{

ch[i/2]=((st[i]<64?st[i]-48:st[i]-55)*16)+(st[i+1]<64?st[i+1]-48:st[i+1]-55);

c[i/2]=ch[i/2];

printf(”  %c%c   “,st[i],st[i+1]);

printf(”  %5d”,ch[i/2]);

printf(”  %5c\n”,c[i/2]);

}

}

——解决方案——————–

//将一个字符串作为十六进制串转化为一个字节数组,字节间可用空格分隔,

//返回转换后的字节数组长度,同时字节数组长度自动设置。

int CMHT_VTest::Str2Hex(CString str, char* data)  //与接受消息无关

{

int t,t1;

int rlen=0,len=str.GetLength();

//data.SetSize(len/2);

for(int i=0;i

{

char l,h=str[i];

if(h==’ ‘)

{

i++;

continue;

}

i++;

if(i>=len)

break;

l=str[i];

t=HexChar(h);

t1=HexChar(l);

if((t==16)

——解决方案——————–

(t1==16))

break;

else

t=t*16+t1;

i++;

data[rlen]=(char)t;

rlen++;

}

return rlen;

}

——解决方案——————–

void ShowStr(char *sStr);

void main()

{

ShowStr(“7C7C307C724C7C267C7C7C7C7C3A7C417C7C7C\0”);

}

void ShowStr(char *sStr)

{

char tStr[3];            //临时字串

char ch;                 //转变后字符

int  n=0;                //原字串计数

if(sStr==NULL) return;   //空串就不操心了

while(1)

{

tStr[0]=sStr[n];        //取1个字符到临时串

if(tStr[0]==0) break;    //如果该字符为零,表示原字串已经取完

n++;

tStr[1]=sStr[n];        //再取1个字符到临时串

n++;

tStr[2]=0;               //临时串的第3个字符坚决为0

sscanf(tStr,”%x”,&ch);   //将临时串以16进制方式给转变字符赋值

printf(“%c”,ch);         //输出ch对应的字符

if(tStr[1]==0) break;     //如果临时串第2字符为零,表示最后一个数据是单的,原字串已经取完

}

printf(“\n”);      //附加赠送,完成后换一行

}

——解决方案——————–

#include 

#include 

#include 

char FromStrToChar(char *str)

{

if(NULL == str)

return ‘\0’;

//对应十六进制数据

int a[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

unsigned int i,sum = 0;

for(i = 0; i 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/152996.html

(0)
上一篇 2025-03-06 17:25
下一篇 2025-03-06 17:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信