轉自: https://blog.csdn.net/lanzhihui_10086/article/details/39995869
atoi()函數
atoi():int atoi(const char *str );
功能:把字元串轉換成整型數。
str:要進行轉換的字元串
傳回值:每個函數傳回 int 值,此值由将輸入字元作為數字解析而生成。 如果該輸入無法轉換為該類型的值,則atoi的傳回值為 0。
說明:當第一個字元不能識别為數字時,函數将停止讀入輸入字元串。
#include<iostream>
using namespace std;
int atoi_my(const char *str)
{
int s=0;
bool falg=false;
//去掉字元串開頭的空
while(*str==' ')
{
str++;
}
//判斷字元串是正數還是負數
if(*str=='-'||*str=='+')
{
if(*str=='-')
falg=true;
str++;
}
//開始轉化
while(*str>='0'&&*str<='9')
{
s=s*10+*str-'0';
str++;
if(s<0)
{
s=2147483647;
break;
}
}
return s*(falg?-1:1);
}
int main()
{
char *s1="333640";
char *s2="-12345";
char *s3="123.3113";
char *s4="-8362865623872387698";
char *s5="+246653278";
int sum1=atoi(s1);
int sum_1=atoi_my(s1);
int sum2=atoi(s2);
int sum_2=atoi_my(s2);
int sum3=atoi(s3);
int sum_3=atoi_my(s3);
int sum4=atoi(s4);
int sum_4=atoi_my(s4);
int sum5=atoi(s5);
int sum_5=atoi_my(s5);
cout<<"atoi: :"<<sum1<<endl;
cout<<"atoi_my:"<<sum_1<<endl;
cout<<"atoi: :"<<sum2<<endl;
cout<<"atoi_my:"<<sum_2<<endl;
cout<<"atoi: :"<<sum3<<endl;
cout<<"atoi_my:"<<sum_3<<endl;
cout<<"atoi: :"<<sum4<<endl;
cout<<"atoi_my:"<<sum_4<<endl;
cout<<"atoi: :"<<sum5<<endl;
cout<<"atoi_my:"<<sum_5<<endl;
system("pause");
return 0;
}
運作結果如下:
