此循环只是将data []
中的每个字符传递给将字符转换为ascii的函数cast
。
我的问题是我想将返回的值存储到数组' buffer []'中,但它只存储第一个返回的值。换句话说,我希望buffer []
具有函数中的所有重新调整的值。
for (int i =0 ; i < 8; i++)
{
if (data [i] != '\0')
{
buffer [i] =cast(data[i]);
}
}
long cast (char b)
{
long x = 0;
x = (long)b;
return x;
}
答案 0 :(得分:1)
不需要编写函数来进行类型转换。
buffer[i] = (long)data[i];
答案 1 :(得分:0)
我通过使数据数组和缓冲区数组的大小相同来解决问题。 实施例;
data [512];
buffer [512];
所以,现在从数据转换的每个元素都保存在缓冲区数组中。
答案 2 :(得分:0)
如果处理字符串,你的循环条件也有一个根本的缺陷。
for (int i =0 ; i < 8; i++)
{
if (data [i] != '\0')
{
buffer [i] =cast(data[i]);
}
}
如果数据[3] =='\ 0',则循环继续直到i <1。 8。 我建议;
for (int i =0 ; i < 8; i++)
{
if (data [i] == '\0')
{
break;
}
buffer [i] =cast(data[i]);
}
(最初发布为评论)