c++ 字符串转整型-不使用库函数

/*

*  题:将一个字符串转换成一个整数,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

*/

#include<iostream>

#include<string>

long strtolong(string str)

{

    if(str.length() == 0)  retuen 0;

    int flag = 0;

    if(str.at(0) == '+') flag =1;

    if(str.at(0) == '-') flag =2;

    int i= flag > 0 ? 1 : 0;

    long result = 0;

    for(int i;i<str.length();i++)

    {

        if(str.at(i)<'0' || str.at(i)>'9')

                return 0;

        result = result * 10 + (str.at(i) - '0');

    }

    return (int)(flag==2 ? -result : result);

}

int main()

{   

    string str;

    cin >> str ;

    long result ;

    result = strtolong(str);

    cout << result;

    return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。