特别注意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;
} |