首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c++中将数字转换为字母

在c++中将数字转换为字母
EN

Stack Overflow用户
提问于 2012-02-13 18:47:30
回答 5查看 30.5K关注 0票数 6

我正在试着写一个可以把数字转换成字母的代码。例如,1将是“A”,2将是“B”,3将是“C”,以此类推。我正在考虑写26个if语句。我想知道有没有更好的方法...

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2012-02-13 18:50:30

使用字母数组。

代码语言:javascript
复制
char nth_letter(int n)
{
    assert(n >= 1 && n <= 26)
    return "abcdefghijklmnopqrstuvwxyz"[n-1];
}
票数 28
EN

Stack Overflow用户

发布于 2012-02-13 18:51:43

如果可以依赖于使用ASCII字符集,则可以将

代码语言:javascript
复制
char intToAlphabet( int i )
{
   return static_cast<char>('A' - 1 + i);
}

如果你有时可以依赖这个事实,例如,你可以为特定的目标设置一个编译器标志或类似的东西,你也可以将这个代码用于那个特定的构建。

否则,请使用静态查找表(如其他人所建议的)。

请注意,如果您的编号输入来自您知道永远不应该超出范围的程序变量,最好是“断言”您的范围检查。

如果输入来自用户提供的数据,而用户可能会提供流氓数据,那么您需要一种方法来处理它,而不是“未定义的行为”。因此,您必须检查每个值并抛出异常(通知用户更正他们的数据),或者使用一些字符来指示输入错误。

票数 9
EN

Stack Overflow用户

发布于 2012-02-13 18:51:54

类似这样的东西

代码语言:javascript
复制
my_print(int x)
{
    char symbol = (char)('A' + x - 1);
    cout << symbol;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9259140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档