atoi 函数的实现
atoi()函数实现的功能是:将字符串转换为相应的整形;
atoi代码块的实现
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//atoi()的实现(将字符串转为整形)
int my_atoi(char * str)
{
int n=0;//保存整形
char firstChar = *str;//记录str的第一个字符
if (firstChar == '+' || firstChar == '-')//+123 -123
{
++str;
}
while(*str == '0')//00123 -00123
{
++str;
}
while (*str)
{
char temp = *str;
if (*str < '0' || *str> '9')
{
cout << "字符串不匹配" ;
return n;//该字符串含有非数字字符,不能转为整数
}
else
{
temp -= '0';
n = n * 10 + temp;//将字符串转为整形
}
str++;
}
if (firstChar == '-')
{
n = -n;
}
return n;
}
//测试代码块
int main()
{
char* str1 = "+123";
cout << "原字符串:" << str1 << " ";
cout << "转换后整形:" << my_atoi(str1) <<endl;
char* str2 = "-123";
cout << "原字符串:" << str2 << " ";
cout << "转换后整形:" << my_atoi(str2) << endl;
char* str3 = "-000123";
cout << "原字符串:" << str3 << " ";
cout << "转换后整形:" << my_atoi(str3) << endl;
char* str4 = "+000123";
cout << "原字符串:" << str4 << " ";
cout << "转换后整形:" << my_atoi(str4) << endl;
char* str5 = "1002300";
cout << "原字符串:" << str5 << " ";
cout << "转换后整形:" << my_atoi(str5) << endl;
char* str6 = "12a3";
cout << "原字符串:" << str6 << " ";
cout << "转换后整形:" << my_atoi(str6) << endl;
system("pause");
return 0;
}