【题目】
字符串转数字。
【分析】
主要是通过逐个字符获取并赋值给一个整型变量,每赋值一次*10即可。要做得完善点可以加上检测输入是否正确,正负数判断。
【代码】
#include "stdafx.h"
#include <afx.h>
#include <conio.h>
#include <string>
int Catoi(std::string str)
{
int result=0; //转换结果
字符串长度是整型吗bool isUp= true; //判断是否是正数
int start=0; //比较开始点
int end=str.size(); //比较结束点
if(str[0]=='-')
{
isUp = false;
start =1;
}
else if(str[0]=='+')
{
start =1;
}
for(;start<end;start++)
{
char temp = str[start];
if( temp <='9' && temp>='0' ) //非法字符除外
{
result= result*10 +(str[start]-'0'); //主要算法,每赋值一次首先先乘以10再加数字
//char to int是ascII码, 因此要减‘0’
}
}
if(!isUp)
{
result*=-1; //如果是负数,乘以-1;
}
printf("%d\n",result);
return result;
}
int _tmain(int argc, _TCHAR* argv[])
{
Catoi("-1");
Catoi("99");
Catoi("+65535");
Catoi("-99");
Catoi("-65535");
getchar();
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论