|
|
发表于 2005-6-17 13:59:57
|
显示全部楼层
Post by macarthor
int a = 123;
char b;
如何将b == "123"???
有这种可能么 按照你的定义方法b可是字符,
b=="123" b 可就变成了字符串了。
如果你的原意是说怎么把整型变成字符那我可以告诉你,用toascii()类的函数就可以了
就像atoi()一样他们有一个类别,你可以查看这个类别里的所有函数,选择你要用的。
至于楼上几位讨论的sprintf 和snprintf 我不是要否认你们的说法,我只是觉得你们说的有
些歧义,函数本身没有什么安不安全的分别,而是你的思想,试问你在连接字符串之前全部做了
检查还会越界么,snprintf本来就是gnu对sprintf的包装,这样的包装还有很多,不过是为了
用起来方便,可是你如果在非gnu系统下呢?windows下面就没有这个函数的。
标准c函数基本上是不能拿过来就用的(软件项目中)大部分需要根据自己的要求包装的。

toascii(将整型数转换成合法的ASCII 码字符)
相关函数 isascii,toupper,tolower
表头文件 #include<ctype.h>
定义函数 int toascii(int c)
函数说明 toascii()会将参数c转换成7位的unsigned char值,第八位则会被清除,此字符即会被转成ASCII码字符。
返回值 将转换成功的ASCII码字符值返回。
范例 #include<stdlib.h>
main()
{
int a=217;
char b;
printf(“before toascii () : a value =%d(%c)\n”,a,a);
b=toascii(a);
printf(“after toascii() : a value =%d(%c)\n”,b,b);
}
执行 before toascii() : a value =217()
after toascii() : a value =89(Y)
atoi(将字符串转换成整型数)
相关函数 atof,atol,atrtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 int atoi(const char *nptr);
函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。
返回值 返回转换后的整型数。
附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
范例 /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a)+atoi(b);
printf(c=%d\n”,c);
}
执行 c=356 |
|