如何将字面整数显示为字符

时间:2012-02-10 00:00:06

标签: c++ char int

我有一个整数1,我想在C ++中将其显示为字符“1”。到目前为止,我只设法将它从整数65转换为字符'A'。 你怎么阻止这个?

4 个答案:

答案 0 :(得分:5)

int theDigit = 1;
char ch = theDigit+'0';

这是有效的,因为它保证 1 字符序列'0' ... '9'是连续的,所以如果你将你的数字添加到'0',你会得到相应的人物。显然这只适用于单个数字(如果theDigit是例如20,你会得到一个不相关的字符),如果你需要将一个整数转换为字符串,你需要snprintf(在C中)或string streams(在C ++中)。


  1. C ++ 11,[lex.charset]¶3:
  2.   

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

    顺便说一句,我认为他们并没有因为EBCDIC而在字母字符中强制要求连词。

答案 1 :(得分:2)

使用stringstream。

int blah = 356;
stringstream ss;
string text;

ss << blah;
ss >> text;

现在text包含"356"(不含引号)。如果要复制我的代码,请确保包含头文件并使用命名空间:

#include <sstream> //For stringstream
#include <string>

using namespace std;

答案 2 :(得分:1)

#include <stdio.h>
#include <stdlib.h>

int i = 3;
char buffer [25];
itoa (i, buffer, 10);
printf ("Integer: %s\n",buffer);

整数:3

答案 3 :(得分:0)

你刚刚问过打印一个整数,所以真正简单的c ++答案是:

#include <iostream>

int main()
{
  int value = 1;
  std::cout << value << endl;
  return 0;
}