码迷,mamicode.com
首页 > 编程语言 > 详细

C++中 int char 的相互转换

时间:2014-07-09 08:38:00      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:c++   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;
}


C++中 int char 的相互转换,布布扣,bubuko.com

C++中 int char 的相互转换

标签:c++   char   数组   

原文地址:http://liuzhangheng.blog.51cto.com/8792220/1436047

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!