1. 程式人生 > >字串轉整數以及函式atoi()的使用

字串轉整數以及函式atoi()的使用

轉自: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;
}

 

執行結果如下: