1. 程式人生 > >C++ 整數與字串相互轉化

C++ 整數與字串相互轉化

一. 整數轉化為字串

方法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;
}

這裡寫圖片描述