2013-02-26 99 views
0

我有一堆不同的数据类型,我想通过烧焦的,但是当我做平常格式传递整数:将不同的数据类型转换为char?在C

char number=(char)one; 

它仅适用于整数。有了其他数据类型,当我想要字符串表示时,它给了我数字值。什么是最简单的方法来做到这一点? P.S.请彻底解释答案,因为当我试图用这种方式施放时,我也有指针大小问题。只有c语法请 谢谢

+1

请列举一些例子。 'char'是一个整数数据类型,所以我想我不确定你想要什么? – adamdunson 2013-02-26 03:06:25

+0

'char'是一个字符,它(正如adamdunson所说)是一个整数。这不是一个字符串,所以我不确定你的意思是“字符串表示”。 – melpomene 2013-02-26 03:09:08

+1

你想要做的不是“投射”,你想要格式化。 – 2013-02-26 03:11:12

回答

3

如果你正在寻找数据类型的字符串表示,我想你想要的是sprintf函数。例如,对于浮点类型,你会怎么做:

float example = 3.6; 
char temp[64]; // Allocate a string of size 64. 
sprintf(temp, "%f", example); 

这将存储在临时的example字符串表示。

+0

有没有打印它呢? – 2013-02-26 03:11:23

+1

还有其他方法,但不想使用它们,至少不适用于浮点类型。如果你担心这个问题,'sprintf()'不会在屏幕或打印机上打印任何东西。 – 2013-02-26 03:20:47

+0

它仍然返回数字值,即使我把它和什么数据类型像uid_t或结构utsname – 2013-02-26 03:45:54

1

char是整数类型,这意味着它可以被转化为与从整数(小于256)。

对于其他数据类型,当我需要 字符串表示形式时,它给了我数字值。

从技术上讲,字符串不是char。这是一个数组,因此最终会衰减为指针。

对于每一个类型的,你必须创建自己的toString()排序功能(S),并返回相应格式的字符串。

最简单的方法:用sprintf()

0

让我们在这一条线,一个字的时间,以获得正确的概念。

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只是一个字符,这将举行一个字节的值,如果你指定别的事情,你可能会得到意想不到的结果。

+0

好的感谢解释上述代码只是一个例子。一个只是假设是任何int变量。这只是假设显示如何试图施放。谢谢你 – 2013-02-26 03:24:33

0

也许你是这样的事情后:

char number = '0' + one; 

这将为一个工作= [0,9]

相关问题