首页 > 代码库 > C++中 int char 的相互转换
C++中 int char 的相互转换
特别注意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; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。