6 字符串转换为整型数值
作者: 冯向阳时间限制: 1S章节: 其它
问题描述 :
内容:对于任意一个输入的数字字符串(限定数字长度在10以内,且转换后的整数大小不超过int类型范围。允许有正负号,字符串内部无多余的空格),实现以下功能函数:将该数字字符串转换为整型数值。最后将转换结果输出到屏幕上。并编写main函数测试该功能函数。
注意:要求使用指针实现,函数的参数传递采用地址传递方式。
函数原型为:
int myatoi(char *string);
main函数可参考以下代码编写:
int main(){
char str[100];
cin>>str;
cout<<myatoi(str)<<endl;
return 0;
}
输入说明 :
输入时,可输入任意组测试数据。每组测试数据包含一行,即输入一个数字字符串。
组与组之间无空行。
输出说明 :
对于每组测试数据,输出对应的转换结果。
每行行首与行尾无多余空格,第一行之前与最后一行之后无多余空行。
#include <iostream>
#include <cstring>
using namespace std;
int myatoi(char *string)
{
int sign = 1; // 正负号
int result = 0; // 转换结果
int i = 0;
// 跳过空格
while (string[i] == ' ')
{
i++;
}
// 处理正负号
if (string[i] == '-')
{
sign= -1;
i++;
}
else if (string[i] == '+')
{
i++;
}
// 进行转换
while (string[i] >= '0' && string[i] <= '9')
{
result = result * 10 + string[i] - '0';
i++;
}
return sign * result;
}
int main()
{
char str[100];
while(cin >> str)
cout << myatoi(str) << endl;
return 0;
}