600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【类型转换】C++中char char* int string相互转换函数及string转不同进制数函数

【类型转换】C++中char char* int string相互转换函数及string转不同进制数函数

时间:2022-10-16 12:20:01

相关推荐

【类型转换】C++中char char* int string相互转换函数及string转不同进制数函数

1、char转int与int转char

1.1、char转int:

char a = '1';int b = a - '0'; // b = 1;

1.2、int转char:

int a = 1;char b = a + '0'; // b = '1';

2、char星、char转string与strng转char星、char

2.1、char星、char转string:

char* ptr = "abcd";string s(ptr); // s = "abcd";char c = 'a';string s2;s2 += c; // s2 = "c";

2.2、strng转char星、char:

string s = "abc";char* ptr = const_cast<char*>(s.c_str()); // ptr = "abc";string s = "a";char c = s[0]; // c = 'a';

3、int转string与string转int

3.1、int转string:

int a = 23;string s = to_string(a); // s = "23";

3.2、string转int:

#include<cstring>string s = "123";int a = atoi(s.c_str()); // a = 123;int b = stoi(s); // b = 123;

atoi()和stoi()的异同点:

相同点:

①都是C++的字符处理函数,把数字字符串转换成int输出

②头文件都是#include不同点:

①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的;

②stoi()的参数是const string,不需要转化为 const char*;

学习链接:atoi()和stoi()的区别----数字字符串的处理

4、string转不同进制数(strtol)

函数原型:

long int strtol (const char* str, char** endptr, int base);

各参数含义:

str是要转换的字符

enptr是指向第一个不可转换的字符位置的指针:若endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则不传回该指针。

base的基数,表示转换成为几进制的数

char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";char * pEnd; // pEnd不为nulllong int li1, li2, li3, li4;li1 = strtol (szNumbers,&pEnd,10); // 2001li2 = strtol (pEnd,&pEnd,16); // 6340800li3 = strtol (pEnd,&pEnd,2); // -3624224li4 = strtol (pEnd,NULL,0); // 7340031

参考资料:cplusplus官方资料

strtol 函数用法

总结:

1、这些在做编程题处理输入数据时常用,需要牢记。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。