文字列を整数関数atoi()関数に変換する
3871 ワード
関数プロトタイプ:int atoi(const char*nptr);
関数の説明:パラメータnptr文字列、最初の非スペース文字が存在し、数値でもプラスマイナスでもない場合はゼロを返します.そうでない場合はタイプ変換を開始し、その後、非数値(終了記号0を含む)文字が検出された場合は変換を停止し、整数を返します.
コード:
関数の説明:パラメータnptr文字列、最初の非スペース文字が存在し、数値でもプラスマイナスでもない場合はゼロを返します.そうでない場合はタイプ変換を開始し、その後、非数値(終了記号0を含む)文字が検出された場合は変換を停止し、整数を返します.
コード:
#include<stdio.h>
#include<stdlib.h>
#include <cctype>
int my_atoi(const char* p)
{
if(p==NULL)
return 0;
bool neg_flag = false; //
int res = 0; //
if(p[0]=='+'||p[0]=='-')
neg_flag=(*p++!='+');
while(isdigit(*p))
res=res*10+(*p++-'0');
return neg_flag?0-res:res;
}
int main()
{
char a[] = "-100" ;
char b[] = "123" ;
int c ;
c=atoi(a)+atoi(b) ;
printf("a = %d
", my_atoi(a)) ;
printf("b = %d
", my_atoi(b)) ;
printf("c = %d
", c) ;
system("pause");
return 0;
}