投稿 资料上传 搜索
您现在的位置是: 首页 > 文章 > 正文

C\C++字符串与数字之间的转换

主要有两种方式:C 中能够使用 sprintf 将数字转为字符数组,sscanf 将字符数组转为数字;而在 C++ 中不仅能够使用 C 中的方法,还能够使用 stringstream 实现字符串与数字间的转换。 

下面的函数转为字符串是char类型
最好用:stringstream

int n = 123456;
char p[100] = {};
stringstream s;
s << n;
s >> p;

其次:springf、sscanf
数字转字符串
sprintf(str, “%d”, num);
字符串转数字
sscanf(str, “%d”, &rsl);
再其次:itoa、atoi
(1)数字转字符
itoa()函数有3个参数:数字、写入转换结果的目标字符串、进制
itoa(num, string, 10); // 按10进制转换
(2)字符转数字
char str[4] = {‘1’, ‘2’, ‘3’, ‘4’};
int num = atoi(str);

代码示例

整数转字符串 

#include <iostream>
using namespace std;
int main() {
// 整数转字符串
int num = 1234;
char temp[7], str[7];
int i = 0, j = 0;
while(num) {
// 整数转字符串: +'0'
temp[i++] = num % 10 + '0';
num = num / 10;
}
// 刚转化的字符串是逆序的
while(i >= 0) {
str[j++] = temp[--i];
}
cout << str << endl;
return 0;
}

字符串转整数 

#include <iostream>
using namespace std;
int main() {
char str[5] = {'1', '2', '3', '4', '\0'};
int num = 0;
int i = 0;
while(str[i]) {
num = num * 10 + (str[i++] - '0');
}
cout << num << endl;
return 0;
}


 

 

转载于:

文章标签:
阿里云服务器采购季
给作者打赏,鼓励TA抓紧创作!
评论