首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用ASCII将int转换为char

不使用ASCII将int转换为char
EN

Stack Overflow用户
提问于 2013-06-26 13:01:10
回答 4查看 3K关注 0票数 2

例如,如何将10以下的int转换为char:

5 -> '5‘

(不使用ASCII表将int转换为字符)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-26 13:01:59

由于数字在标准字符集中总是连续的,所以可以编写:

代码语言:javascript
运行
复制
int number = 5;
int character = number + '0';

/* Here, character == '5' */

例如,参见C11标准。

n1570,§5.2.1字符集 十进制数字:0 1 2 3 4 5 6 7 8 9 ..。 在源字符集和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应大于前一个字符的值。

同样的情况也适用于C++。

n3337,§2.3字符集 在源字符集和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应大于前一个字符的值。

票数 13
EN

Stack Overflow用户

发布于 2013-06-26 13:26:25

如果它是0-9,则最好使用:

代码语言:javascript
运行
复制
int i = 5;
char ch = i + '0';

但是最好的选择可能是使用itoa()

代码语言:javascript
运行
复制
int i = 124;
char buffer[33];
itoa(i, buffer, 10);    //10 mean decimal.
票数 3
EN

Stack Overflow用户

发布于 2013-06-26 13:02:09

这里有个选择

代码语言:javascript
运行
复制
char c;
int x;
//...
switch ( x )
{
   case 1:
      c = '1';
      break;
   //and so on
}

另一个:

代码语言:javascript
运行
复制
std::map<int, char> mapping;
mapping[1] = '1';
//...

char c = mapping[4];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17320769

复制
相关文章

相似问题

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