怎样用c将无符号整型转化为字符型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用c将无符号整型转化为字符型相关的知识,希望对你有一定的参考价值。
可以通过函数itoa来转换,如将十进制无符号整形a转化为字符串str,可以用如下代码:
int a;
char str[5];
a=423;
itoa(a ,str, 10);
具体展示如下:
建议采用强制转换,容易出现乱码!
参考技术A 如果是转换成char型,则直接强制转换即可。若转换成字符串的话,则需要转换函数。
如:int a;char temp[10];
itoa(i,temp,10);(最后一个参数表示10进制) 参考技术B 可以通过函数itoa来转换,
int i;
char tmpstr[5];
itoa(i, tmpstr, 10);
这样就可以了.
还可以通过强制转换来完成,
int i;
char s;
s = (char)i; 参考技术C 可以直接进行转换的,无须用什么别的程序,一个强制转换就可以实现。 参考技术D 强制类型转换
unsigned int ui = 85;
char c = (char)ui;
keil c中如何把字符串转化为整型 具体一点
参考技术A 可以使用sscanf,就像sprintf将整型数转换成字符串输出一样,逆运算(KEILC中scanf和printf确定了通过单片机串行口完成输入输出模式,除非做了修改,一般实际中不用)。给你个例子:
unsigned
char
string[5]="1234";
unsigned
int
n;
sscanf(string,"%u",&n);
//string是字符串,%u是格式控制串,u是无符号十进制数,&n是变量n的地址。
printf
("%d\n",n);
//可在KEIL
C
开发环境中输出观察
你可以把上面这部分代码放到KEIL
C中的HELLO.C程序中观察验证一下。
关于格式控制串(也就是“%u”等),可以查看一下KEIL
C的相关资料,与PC机的C语言略有不同。可以根据不同的要求转换成8进制、16进制、int型、long型等数据,相关符号有一二十种,此处就不细说了。 参考技术B 先说明你为什么想要这样转换。
简单来说用强制类型转换逐个复制到缓冲区中就行。 参考技术C 这问题有点那啥
在一定程度上,其实是可以把字符串理解为数组的,如果你只是要将字符串中的字符一一转化成整型,那只需要这样:
(用lylxy1965的例子)
unsigned
char
string[5]="1234";
unsigned
int
n;
for(
int
i=0;
i<
strlen(string);
i++)
n
=
string[i];
//此时n的值将为“1234”所对应的ASCII码,如string[0]时,n=0x31
//把n拿来处理
如果你是要将字符串中的字符一一转换成其对应的数值,那就在上述循环中加入范围限制和运算即可实现如string[0]时,n=1这样的效果来
关键是你需要什么
以上是关于怎样用c将无符号整型转化为字符型的主要内容,如果未能解决你的问题,请参考以下文章