gpt4 book ai didi

在 C 中将 int 转换为 char 数组

转载 作者:太空狗 更新时间:2023-10-29 16:51:53 25 4
gpt4 key购买 nike

是否可以在 C 中仅使用转换将 int 转换为“string”?没有像 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()。但是我的老师只想使用 cast。

另外,为什么不能编译以下内容?

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;
}

最佳答案

当然不可能,因为数组是对象,需要存储。转换产生,而不是对象。有人会说 C 的全部意义/强大之处在于您可以控制对象的存储和生命周期。

生成包含整数的十进制表示的字符串的正确方法是自己为它创建存储并使用 snprintf:

char buf[sizeof(int)*3+2];
snprintf(buf, sizeof buf, "%d", n);

关于在 C 中将 int 转换为 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com