C++ 整數與字串相互轉化
阿新 • • 發佈:2019-01-03
一. 整數轉化為字串
方法1:用itoa(實戰時常用)
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
// 整數轉字串
int num = 6;
char string[7];
// itoa()函式有3個引數:源字串、目標字串、進位制
itoa(num, string, 10); // 按10進位制轉換
cout << string << endl;
itoa(num, string, 2 ); // 按2進位制轉換
cout << string << endl;
return 0;
}
方法2:不用itoa,我自己寫(面試時常考)
#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;
}
二. 字串轉化為整數
方法1:用atoi(實戰時常用)
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
char str[4 ] = {'1', '2', '3', '4'};
int num = atoi(str);
cout << num << endl;
return 0;
}
注:char str[4] = {‘1’, ‘2’, ‘3’, ‘4’}; 也可以寫成 char str[5] = {‘1’, ‘2’, ‘3’, ‘4’, ‘\0’};
方法2:不用atoi,我自己寫(面試時常考)
#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;
}