gpt4 book ai didi

c++ - 我如何将浮点值分配给 char* c[] 数组

转载 作者:行者123 更新时间:2023-11-30 18:32:38 24 4
gpt4 key购买 nike

我有 string、int、float 值,并尝试将这些值分配给 char* c[] 数组,如下所示。

char *str = "helloo";
int int = 1000;
short st1[]={32760};
float flt = 2.345;
char* c [] = {(char*)int1,(char*)str,(char*)flt,(char*)st1};

但是对于 float 来说从“float”到“char *”的非法显式转换有人告诉我如何分配吗?

最佳答案

您不能仅仅强制转换这些类型并期望获得有用的结果。转换是一种最小的操作,可以以某些预定义的方式转换数据,但它不会(例如)智能地将整数转换为其字符串表示形式。

这就是你的编译器提示的原因。

如果您想要数字数据的字符串表示形式,则必须以不同的方式转换它们,例如:

char intStr[30]
sprintf (intStr, "%d", int1);

如果您希望获得所有这些的字符串表示形式,您可以执行以下操作:

char *str = "helloo";
int int1 = 1000;
short st1[]={32760};
float flt = 2.345;

char mybuff1[50], mybuff2[50], mybuff3[50], mybuff4[50];
sprintf (mybuff1, "%d", int1);
sprintf (mybuff2, "%s", str);
sprintf (mybuff3, "%f", flt);
sprintf (mybuff4, "%d", st1[0]);

char *c [] = {mybuff1, mybuff2, mybuff3, mybuff4);
<小时/>

请注意,尽管 C 和 C++ 具有非常相似的习惯用法,并且如果您坚持使用其中的一个子集,那么它们大多是兼容的,但它们不是相同的语言,并且执行某些操作的最佳方式会发生巨大的变化取决于您实际使用的语言。

例如,很少需要在 C++ 中使用 C 样式字符串,因为该语言提供了令人印象深刻的真实字符串类型。对于 malloc/freenew/delete 和许多其他方面来说也是如此。

问题通常应标记为 C 或 C++,很少同时标记为两者。

关于c++ - 我如何将浮点值分配给 char* c[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841782/

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