求51单片机字符串转换程序,C语言哦~~
举个例子:字符串:“61664146303139”,表示afAF019分解就是:0x610x660x410x460x300x310x39求个函数:输入类似于“616641...
举个例子:
字符串:“61664146303139”,表示afAF019
分解就是:0x61 0x66 0x41 0x46 0x30 0x31 0x39
求个函数:输入类似于“61664146303139”字符串的首地址,返回转码后的字符串“afAF019”的首地址。
字符串:“415A617A313039”,表示AZaz109
分解就是:0x41 0x5A 0x61 0x7A 0x31 0x30 0x39 展开
字符串:“61664146303139”,表示afAF019
分解就是:0x61 0x66 0x41 0x46 0x30 0x31 0x39
求个函数:输入类似于“61664146303139”字符串的首地址,返回转码后的字符串“afAF019”的首地址。
字符串:“415A617A313039”,表示AZaz109
分解就是:0x41 0x5A 0x61 0x7A 0x31 0x30 0x39 展开
2个回答
展开全部
char* D2C(char* Str_in)
{
char l;//长度
char i,j;
char Str_out[32];// 输出最多32字节,或者设为其他数字
char* ss=Str_in;
char cc=Str_out;
for(l=0;l++;*(ss++));// 检查字符串长度
l=l/2;// 输出的字符串长度
ss=Str_in;
for(i=0;i<l;i++)
{
if((*ss)<='9')&&(*ss>'0'))
{
j=*ss-'0';
}
else if((*ss)<='F')&&(*ss>'A'))
{
j=*ss-'A';
j=j+10;
}
else if((*ss)<='f')&&(*ss>'a'))
{
j=*ss-'a';
j=j+10;
}
else
{
break;// 非法字符
}
ss++;
*cc=j;
*cc<<=4;
if((*ss)<='9')&&(*ss>'0'))
{
j=*ss-'0';
}
else if((*ss)<='F')&&(*ss>'A'))
{
j=*ss-'A';
j=j+10;
}
else if((*ss)<='f')&&(*ss>'a'))
{
j=*ss-'a';
j=j+10;
}
else
{
break;// 非法字符
}
ss++;
*cc=*cc+j;
cc++;
}
*cc=0;
return Str_out;
}
{
char l;//长度
char i,j;
char Str_out[32];// 输出最多32字节,或者设为其他数字
char* ss=Str_in;
char cc=Str_out;
for(l=0;l++;*(ss++));// 检查字符串长度
l=l/2;// 输出的字符串长度
ss=Str_in;
for(i=0;i<l;i++)
{
if((*ss)<='9')&&(*ss>'0'))
{
j=*ss-'0';
}
else if((*ss)<='F')&&(*ss>'A'))
{
j=*ss-'A';
j=j+10;
}
else if((*ss)<='f')&&(*ss>'a'))
{
j=*ss-'a';
j=j+10;
}
else
{
break;// 非法字符
}
ss++;
*cc=j;
*cc<<=4;
if((*ss)<='9')&&(*ss>'0'))
{
j=*ss-'0';
}
else if((*ss)<='F')&&(*ss>'A'))
{
j=*ss-'A';
j=j+10;
}
else if((*ss)<='f')&&(*ss>'a'))
{
j=*ss-'a';
j=j+10;
}
else
{
break;// 非法字符
}
ss++;
*cc=*cc+j;
cc++;
}
*cc=0;
return Str_out;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询