天天看點

itoa()和atoi()函數

在學習itoa()和atoi()函數時遇到一點小問題

首先說下兩者的用法:

  1. char *itoa(int value,char *string,int radix),其中 radix指定整數value的轉換進制,可以取值為2、8、10、16,該函數實作的功能是将整數value轉換成指定進制的字元串存入string。
  2. int atoi(char *nptr),該函數實作的功能是将字元串轉換成整數;在轉換過程中,跳過前面的空格字元,直到遇上數字或正負符号才開始做轉換,而再遇到非數字或字元串結束時(‘\0’)才結束轉換,并将結果傳回。

程式

#include<iostream>
#include<stdlib.h>   //标準庫頭檔案
using namespace std;
int main()
{
    int number=;
    int a;
    char string[];
    itoa(number,string,); //整數轉換成字元串
    cout<<"integer= "<<number<<endl;
    cout<<"string= "<<string<<endl;
    a=atoi(string);  //字元串傳喚成整數
    cout<<"a= "<<a<<endl;   
    return ;
}
           

程式結果

itoa()和atoi()函數

從上面可以看出整數經過itoa()轉換,再經過atoi()轉換的結果等于自身。

但是使用itoa()将整數轉換成二進制形式的字元串後, 再使用atoi()轉換成的整數卻很奇怪,這是為什麼??

itoa()和atoi()函數