int,char,char*,string的相互转化(共五对 类型相互转化)下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29567701/article/details/80787542

int,char,char*,string的相互转化(共五对 类型相互转化)下

共五对 类型相互转化: 1.int 与 string; 2.int 与 char; 3.int 与 char[]; 4.string 与 char; 5.string 与 char[]。
其中,1.int 与 string;在该博文里 int,char,char*,string的相互转化(共五对 类型相互转化)上
本文是借助了,网上的资料,对int,char,char*,string之间的转化做了比较全面的汇总,希望大家喜欢。
具体借用的地方写了链接。
2、int 与 char ////////////////////////////////////////////////////////////////////////////

2.1 int ->char

        int data_int=9;
        char data_str=(char)(data_int+'0');
        cout<<data_str<<endl;
        //需要注意的是因为字符只能是单个的字符,所以这种方法处理的int只能是个位数即0-9;

2.2 char->int:

        char str_data='5';
        int int_data=(int)(str_data-'0');
        cout<<int_data<<endl;

3、 int 与 char[] ////////////////////////////////////////////////////////////////////////////

3.1 int ->char[]
函数: char*_itoa(intvalue,char*string,intradix);
参数说明编辑
value—–要转换的整形值
string—–转换后的字符串
radix——表示基数(2, 8, 10, 16)等进制基数
eg:

    char buffer[20];
    int i = 127;
    _itoa(i, buffer, 10);//10进制数 转化为char[] ,以10进制形式保存在 char buffer[]中
    cout << i << "\t" << buffer << endl;
    _itoa(i, buffer, 16);//10进制数 转化为char[] ,以16进制形式保存在 char buffer[]中
    cout << i << "\t" << buffer << endl;
    _itoa(i, buffer, 2);//10进制数 转化为char[] ,以2进制形式保存在 char buffer[]中
    cout << i << "\t" << buffer << endl;

3.2 char[]->int:

    char *ch = "128";
    int n = atoi(ch);
    cout << ch << "\t" << n << endl;

4、string 与 char ////////////////////////////////////////////////////////////////////////////
//C++中string、char *、char[]的转换
//https://www.cnblogs.com/Pillar/p/4206452.html
4.1 string->char
用下标取元素

    string mystr = "ABCD";
    char mych = mystr[3];

4.2 char->string
(4.2.1) 使用构造函数string(n, 'c');将字符串初始化为n个’c’字符的副本。

    char ch = 'x';
    string str(1, ch); // 使用构造函数string(n, 'c')将字符串初始化为n个'c'字符的副本。

(4.2.2) 采用间接办法,借用中间char*数组,使用 string str(char*,n);取char数组 的前n个字符 到str中。

    char c = 'F';
    char temp[1];
    temp[0] = c;
    string result(temp, 1); //string str(char*,n);取char数组 的前n个字符 到str中

5、string 与 char[] ////////////////////////////////////////////////////////////////////////////

5.1 string->char[]
主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();
(5.1.1) data()方法
eg:

string str = "hello";
const char* p = str.data();//加const  或者用char * p=(char*)str.data();的形式

(5.1.2) c_str()方法
eg:

string str=“world”;
const char *p = str.c_str();//同上,要加const或者等号右边用char*

(5.1.3) copy()方法
eg:

string str="hmmm";
char p[50];
str.copy(p, 5, 0);//这里5代表复制几个字符,0代表复制的位置,
*(p+5)=‘\0’;//注意手动加结束符!!!

5.2 char[]->string
直接赋值
eg:

    string s;
//  char *p = "hello";//直接赋值   // 两种写法都可以  char *p 等价于 char p[]
    char p[] = "hello";//直接赋值
    s = p;

猜你喜欢

转载自blog.csdn.net/qq_29567701/article/details/80787542