【发布时间】:2013-05-02 00:53:20
【问题描述】:
是否可以仅使用强制转换将 int 转换为 C 中的“字符串”?没有像atoi()或sprintf()这样的函数?
我想要的是这样的:
int main(int argc, char *argv[]) {
int i = 500;
char c[4];
c = (char)i;
i = 0;
i = (int)c;
}
原因是我需要生成两个随机整数(0 到 500)并将它们作为消息队列中的一个字符串发送到另一个进程。另一个进程接收消息并执行 LCM。
我知道如何处理atoi() 和itoa()。但我的老师只想使用演员表。
另外,为什么不能编译以下内容?
typedef struct
{
int x;
int y;
} int_t;
typedef struct
{
char x[sizeof(int)];
char y[sizeof(int)];
} char_t;
int main(int argc, char *argv[])
{
int_t rand_int;
char_t rand_char;
rand_int.x = (rand() % 501);
rand_int.y = (rand() % 501);
rand_char = (char_t)rand_int;
}
【问题讨论】:
-
关键短语是“我的老师想要的”,这意味着之后的一切都由您自己弄清楚,而不是让我们向您展示。 ~微笑~
-
你无法想象我为此浪费了多少精力、时间和研究。一切正常,只是演员阵容不行。
-
我会反驳说你没有浪费一秒钟......你已经完全按照老师的意图做了......你花了很多时间来弄清楚如何不这样做。作为程序员,这非常有价值。
-
您能分享将其放入消息队列的函数签名吗?这听起来像是问题的症结所在。
-
我了解 K Scott Piel。所以我可以告诉你,除了将 int 转换为 char 数组之外,我什么都完成了。你能帮我么? :)