【发布时间】:2012-11-27 21:32:42
【问题描述】:
这是我的函数,“Sprite”是程序中的一个对象,“GetSpriteAtPosition”只是返回一个指向坐标处正确精灵的指针。
我的问题是我在每个精灵中存储了一个字母,以整数的形式。 0 是 a,25 是 z,分别介于两者之间。我需要我的函数返回一个 char*,它给我一行精灵的字母,所以如果在程序中精灵拼出“abcdefgh”,那么这就是我需要这个函数打印出来的。有一个 8x8 的精灵网格,我得到了正确的坐标,但是我得到一个错误,我无法在标记的行中将 int 转换为 char*。我该怎么做才能让它发挥作用?
提前致谢!
char* RowLetters(int row)
{
char* pointer;
for( int i = 0; i < 8; i++)
{
Sprite* selectedSprite = SpriteAtPosition(row*50, i * 50);
if(selectedSprite != NULL)
{
char* temp = (char)(selectedSprite->Frame() + 97); //error here
pointer = strcat(pointer, temp);
}
else
{
pointer = strcat(pointer, "test");
}
}
return pointer;
}
【问题讨论】:
-
也许你想转换成 char* , **(char)**(selectedSprite?
-
你为什么还要在 C++ 程序中使用 C 字符串?使用
std::string并为自己省去很多悲伤。 -
一些建议,与问题没有直接关系。首先,存储
char而不是int。其次,存储你想要的字符,'a','b'等,这样你就不用经历加97的非便携转换了。