在學習itoa()和atoi()函數時遇到一點小問題
首先說下兩者的用法:
- char *itoa(int value,char *string,int radix),其中 radix指定整數value的轉換進制,可以取值為2、8、10、16,該函數實作的功能是将整數value轉換成指定進制的字元串存入string。
- 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()函數