我有一堆不同的数据类型,我想通过烧焦的,但是当我做平常格式传递整数:将不同的数据类型转换为char?在C
char number=(char)one;
它仅适用于整数。有了其他数据类型,当我想要字符串表示时,它给了我数字值。什么是最简单的方法来做到这一点? P.S.请彻底解释答案,因为当我试图用这种方式施放时,我也有指针大小问题。只有c语法请 谢谢
我有一堆不同的数据类型,我想通过烧焦的,但是当我做平常格式传递整数:将不同的数据类型转换为char?在C
char number=(char)one;
它仅适用于整数。有了其他数据类型,当我想要字符串表示时,它给了我数字值。什么是最简单的方法来做到这一点? P.S.请彻底解释答案,因为当我试图用这种方式施放时,我也有指针大小问题。只有c语法请 谢谢
如果你正在寻找数据类型的字符串表示,我想你想要的是sprintf函数。例如,对于浮点类型,你会怎么做:
float example = 3.6;
char temp[64]; // Allocate a string of size 64.
sprintf(temp, "%f", example);
这将存储在临时的example
字符串表示。
有没有打印它呢? – 2013-02-26 03:11:23
还有其他方法,但不想使用它们,至少不适用于浮点类型。如果你担心这个问题,'sprintf()'不会在屏幕或打印机上打印任何东西。 – 2013-02-26 03:20:47
它仍然返回数字值,即使我把它和什么数据类型像uid_t或结构utsname – 2013-02-26 03:45:54
甲char
是整数类型,这意味着它可以被转化为与从整数(小于256
)。
对于其他数据类型,当我需要 字符串表示形式时,它给了我数字值。
从技术上讲,字符串不是char
。这是一个数组,因此最终会衰减为指针。
对于每一个类型的,你必须创建自己的toString()
排序功能(S),并返回相应格式的字符串。
最简单的方法:用sprintf()
让我们在这一条线,一个字的时间,以获得正确的概念。
char number=(char)one;
第一char
是声明,这意味着我创建char
类型的变量。 char
是1字节(8位)的数据类型,它通常用来装单个字符,但从根本上它是一个字节;因此它可以保持从0x00(又名a 0)到0xFF(又名a 255)的值。
number
是类型的变量的名称char
=
是赋值运算符;你要设置的值为number
(char)
意思是“无论什么类型的变量在我身后,将其解释为char
”。这被称为“铸造到char
”。 (不是“传给char”)。
从你的代码,我不能告诉one
是。但是,如果除char
之外的任何内容或0到255之间的整数,分配都没有意义。
总结是number
只是一个字符,这将举行一个字节的值,如果你指定别的事情,你可能会得到意想不到的结果。
好的感谢解释上述代码只是一个例子。一个只是假设是任何int变量。这只是假设显示如何试图施放。谢谢你 – 2013-02-26 03:24:33
也许你是这样的事情后:
char number = '0' + one;
这将为一个工作= [0,9]
请列举一些例子。 'char'是一个整数数据类型,所以我想我不确定你想要什么? – adamdunson 2013-02-26 03:06:25
'char'是一个字符,它(正如adamdunson所说)是一个整数。这不是一个字符串,所以我不确定你的意思是“字符串表示”。 – melpomene 2013-02-26 03:09:08
你想要做的不是“投射”,你想要格式化。 – 2013-02-26 03:11:12