特别注意char 只能处理单个字符如,1,2,3到9等,不能接收11,11等多位数字
// 取到一个char的ASCII值
char c=‘A‘;
int i=c;
printf("%d",i);
//值为数字的char转为对应数字
char c1=‘3‘;
int c1int=c1-‘0‘;
//int转为char型
int i2=4;
char c2=i2+‘0‘;
printf("%c",c2);
一个数(而不是一个数字) 如何转为char str[]呢?
代码来自 http://bbs.csdn.net/topics/70251034
char tmp[16];
int isNegtive = 0;
int index;
if(m < 0)
{
isNegtive = 1;
m = - m;
}
tmp[15] = ‘\0‘;
index = 14;
do
{
tmp[index--] = m % 10 + ‘0‘; //+‘0‘ 不能少 否则存入的ASCII值
m /= 10;
} while (m > 0);
if(isNegtive)
tmp[index--] = ‘-‘;
//这里如果不愿调用库函数,可以使用for循环拷贝字符
strcpy(buf, tmp + index + 1);
return buf;
如果涉及到较复杂的转换可以采用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> #include <string> using namespace std; int main() { int n = 65535; char t[256]; string s; sprintf (t, "%d" , n); s = t; cout << s << endl; return 0; } |
或者
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | //第二种方法 #include <iostream> #include <string> #include <strstream> using namespace std; int main() { int n = 65535; strstream ss; string s; ss << n; ss >> s; cout << s << endl; return 0; } |
C++中 int char 的相互转换,布布扣,bubuko.com
原文:http://liuzhangheng.blog.51cto.com/8792220/1436047