【发布时间】:2012-04-01 20:23:43
【问题描述】:
我希望将数组的 int 值传递给“幕后”的字符串数组的索引。我希望字符串数组与它们的字符串一起输出,但是我想对字符串表示的索引进行数学运算。
换句话说,我想将它们组合或混合在一起,以便我有 4 个数组:其中 2 个是 int 数组,1 个 int 数组用于进行数学运算;其中2个是字符串数组,它们都只是为了显示到屏幕上。
如果我尝试遍历 int 数组并将字符串数组元素分配给它们相应的索引,它将无法编译,并且我收到错误消息: "不能在赋值中将 'std::string' 转换为 'int'。"
如果我尝试遍历字符串数组并将 int 数组值分配给它们对应的索引,它会编译,但是我得到的是 int 值的 ASCII 表示,而不是数字。 下面是遍历 int 数组的代码:
#include <iostream>
using namespace std;
int main()
{
int typeArray[4] = {55,66,77,88};
int valArray[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
string types[4] = {"Manny", "Moe", "Jack", "John" };
string values[13] = {"One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten",
"Eleven","Twelve","Thirteen"};
for (int i = 0; i < sizeof(typeArray)/sizeof(int); i++)
{
for (int j = 0; j < sizeof(valArray)/sizeof(int); j++)
{
typeArray[i] = types[0];
valArray[j] = values[0];
}
}
system("Pause");
return 0;
}
再次,它无法编译,并且我收到上面提到的错误消息。 下面是遍历字符串数组和输出的代码:
#include <iostream>
using namespace std;
int main()
{
int typeArray[4] = {55,66,77,88};
int valArray[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
string types[4] = {"Manny", "Moe", "Jack", "John" };
string values[13] = {"One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten",
"Eleven","Twelve","Thirteen"};
for (int i = 0; i < sizeof(types)/sizeof(int); i++)
{
for (int j = 0; j < sizeof(values)/sizeof(int); j++)
{
types[i] = typeArray[0];
values[j] = valArray[0];
cout << "This is types array: " << types[i] << " This is values array: " << values[j] << endl;
}
}
system("Pause");
return 0;
}
这是显示整数的 ASCII 转换的输出:
这是类型数组:7 这是值数组:☺
请指教,谢谢!
【问题讨论】:
-
你想用
typeArray[i] = types[0];实现什么?typeArray是一个整数数组,types[0]是一个字符串。 -
嗨,弗拉德,我希望“types[0]”数组显示“Manny”,但实际上有一个值为 -55-的“typeArray[0]”。
-
...或相反...?...."typeArray[0]" 可以保持其值 -55-,但是,它会以字符串 " 输出到屏幕曼尼”。
-
只需删除所有分配并打印出值。