C++ 将整数显式转换为字符

C++ 将整数显式转换为字符,c++,casting,C++,Casting,我正在尝试将整数转换为字符。我知道如何将字符转换成整数,比如int(a)其中a是一个字符。但当我试图将整数转换为字符时,它给了我一个符号值。请帮帮我 我在做下面的事情。提前谢谢 int a=0; char str1[20]; for(int i=0;i<size;i++) //somecalculation that sets value in a everytime and stores in str1 str1[i]=char(a)-'A' inta=0; char-s

我正在尝试将整数转换为字符。我知道如何将字符转换成整数,比如
int(a)
其中
a
是一个字符。但当我试图将整数转换为字符时,它给了我一个符号值。请帮帮我

我在做下面的事情。提前谢谢

int a=0;
char str1[20];
for(int i=0;i<size;i++)
   //somecalculation that sets value in a everytime and stores in str1 
   str1[i]=char(a)-'A'
inta=0;
char-str1[20];

对于(int i=0;i),可以使用<代码> STR1[i]=StistaCype(A+' 0);< /代码>。这将将a=0变为‘0’,a=1’到‘1’。考虑在0、…、9、

以外的行为是未定义的。

for(int i=0;i<size;i++)
//somecalculation that sets value in a everytime and stores in str1 
    sprintf(str1 + i, "%i", a);

for(int i=0;i你想,比方说,5映射到哪个字符?我正在运行一个循环,每次我都在用新的数字计算并设置字符数组中的一位整数。你能给出一个你想要的输入/输出示例吗?f(5)='5',或者其他什么?你知道'A'的值是65,并且这个减法会导致一个负值,对吗?在这里你可以找到以前的讨论:我实际上没有考虑0到9,谢谢它起作用了
for(int i=0;i<size;i++)
//somecalculation that sets value in a everytime and stores in str1 
    if (sprintf(str1 + i, "%i", a) != 1)
        printf("expected to print only one character!\n");