将不同的数据类型转换为char?在c

时间:2013-02-26 03:00:36

标签: c casting

我有一堆不同的数据类型我想传递给char,但是当我按通常的格式传递int时:

    char number=(char)one;

它只适用于整数。对于其他数据类型,当我想要字符串表示时,它给出了数字值。最简单的方法是什么? 附:请彻底解释答案,因为当我尝试以这种方式投射时,我也有指针大小问题。请只有c语法 谢谢

4 个答案:

答案 0 :(得分:3)

如果您正在寻找数据类型的字符串表示,我认为您想要的是sprintf函数。例如,对于float类型,您可以执行以下操作:

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

这将在{。

中存储example的字符串表示形式

答案 1 :(得分:1)

char是一个整数类型,这意味着它可以转换为整数(小于256)。

  

使用其他数据类型时,它会在我想要的时候给出数字值   字符串表示。

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

对于每种类型,您必须创建自己的toString()种函数,并相应地返回格式化的字符串。

最简单的方法:使用sprintf()

答案 2 :(得分:0)

让我们一遍一行,一次一个字,以使概念正确。

char number=(char)one;
  • 第一个char是一个声明,它意味着我正在创建一个char类型的变量。 char是1字节(8位)数据类型,通常用于保存单个字符,但从根本上说它是一个字节;因此它可以保存从0x00(a.k.a 0)到0xFF(a.k.a 255)的值。

  • numberchar

  • 类型变量的名称
  • =是赋值运算符;您将设置number

  • 的值
  • (char)表示“无论我的变量类型是什么,都将其解释为char”。这称为“投射到char”。 ( NOT “传递给char”)。

  • 从您的代码中,我无法分辨one是什么。但如果它除了char或0到255之间的整数之外的任何东西,那么分配都没有意义。

摘要是number只是一个字符,它将保存一个字节的值,如果你为它指定了其他东西,你可能会得到不合适的结果。

答案 3 :(得分:0)

也许你是在追求这样的事情:

char number = '0' + one;

这适用于一个= [0,9]