0
我正在努力为我的Arduino游戏保留一个高分表,并且有以下方法来添加新的高分。问题是names
被宣布为names[positions][4]
,因此每个名称应该完全是三个字符或谁知道可能发生什么。我是否需要在函数中手动检查它,还是可以在定义中强制执行它,还是应该使用完全不同的方法?可能有一个函数需要设置长度的字符数组?
void Highscore::add(uint8_t score, const char * name)
{
position = Highscore::getPosition(score);
if (position >= positions) {
return;
}
for (int i=positions-1; i<=position; i--) {
scores[i] = scores[i-1];
names[i] = names[i-1];
}
scores[position] = score;
names[position] = name;
Highscore::save();
}
'names [position] = name;':o使用strcpy。是的,你必须检查它 – deviantfan 2015-03-03 06:47:55
为什么不使用'strlen'或其他函数来检查'name'的长度,如果它大于3,则请求再次输入它。 – 2015-03-03 06:48:38
当你使用C++时,使用std :: string有什么问题? – 2015-03-03 06:53:12