如何将浮点值分配给字符* C[] 数组
how can i assign float value to char* c[] array
我有字符串,整数,浮点值,并尝试将这些值分配给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};
但是对于浮点数从"浮点数"到"字符 * "的非法显式转换有人打电话给我如何分配吗?
您不能只强制转换这些类型并期望获得有用的结果。强制转换是一种最小操作,可以以某些预定义的方式转换数据,但它不会(例如)智能地将整数转换为其字符串表示形式。
这就是编译器抱怨的原因。
如果你想要数值数据的字符串表示形式,你必须以不同的方式转换它们,如下所示:
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/free
也是如此,而不是new/delete
和许多其他方面。
问题通常应标记为 C 或 C++,很少同时标记为两者。
在C++:
#include <string>
std::string arr[] = { std::to_string(1000),
"helloo",
std::to_string(2.345f),
std::to_string(32760) };
您可以使用arr[0].c_str()
等来取回char const *
。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- 字符数组中的元素数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用字符数组作为 Map 中的键
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 按顺序声明的字符数组重叠
- 在 C++ 中字符串的大小与字符数组的大小
- 寻找一种更好的方法来表示无符号字符数组
- 如何打印 2D 字符数组C++
- 从字符数组的元素中减去'a'是什么意思
- 我是否不正确地集中了这些字符数组?