我正在试着写一个可以把数字转换成字母的代码。例如,1将是“A”,2将是“B”,3将是“C”,以此类推。我正在考虑写26个if语句。我想知道有没有更好的方法...
谢谢!
发布于 2012-02-13 18:50:30
使用字母数组。
char nth_letter(int n)
{
assert(n >= 1 && n <= 26)
return "abcdefghijklmnopqrstuvwxyz"[n-1];
}发布于 2012-02-13 18:51:43
如果可以依赖于使用ASCII字符集,则可以将
char intToAlphabet( int i )
{
return static_cast<char>('A' - 1 + i);
}如果你有时可以依赖这个事实,例如,你可以为特定的目标设置一个编译器标志或类似的东西,你也可以将这个代码用于那个特定的构建。
否则,请使用静态查找表(如其他人所建议的)。
请注意,如果您的编号输入来自您知道永远不应该超出范围的程序变量,最好是“断言”您的范围检查。
如果输入来自用户提供的数据,而用户可能会提供流氓数据,那么您需要一种方法来处理它,而不是“未定义的行为”。因此,您必须检查每个值并抛出异常(通知用户更正他们的数据),或者使用一些字符来指示输入错误。
发布于 2012-02-13 18:51:54
类似这样的东西
my_print(int x)
{
char symbol = (char)('A' + x - 1);
cout << symbol;
}https://stackoverflow.com/questions/9259140
复制相似问题