zoukankan      html  css  js  c++  java
  • 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

    // test20.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include<iostream>
    #include<vector>
    #include<string>
    #include<queue>
    #include<stack>
    #include<cstring>
    #include<string.h>
    #include<deque>
    
    using namespace std;
    
    class Solution {
    public:
    	int StrToInt(string str) {
    		//如果字符串为空,返回-1
    		if (str == "")return 0;
    		int num=0;//要输出的数字
    		int flag=1;//符号位,0表示负数,1表示正数
    		cout << str.find_first_not_of("1234567890+-") << endl;
    		if (str.find_first_not_of("1234567890+-") < str.size())  return 0;//如果存在不合法字符
    
    		char ch = str[0];
    		int i = 0;
    		//判断符合
    		if (ch == '-') 
    		{
    			flag = 0;//数字为负数
    			i = 1;
    		}
    		else if (ch == '+')
    		{
    			flag = 1;//为正数
    			i = 1;
    		}
    		else
    		{
    			i = 0;
    		}
    
    		while (i<str.size())
    		{
    		//	cout << "str[i]:" << str[i] << endl;
    			int a = str[i]-48; //char类型和int类型相差48
    		//	cout << "a:" << a << endl;
    			num = num * 10 + a;
    			cout << "num:" << num << endl;
    			i++;
    		}
    
    		if (flag == 0) num = -num;
    		
    		return num;
    	}
    };
    
    int main()
    {
    	
    	Solution so;
    	//int count = so.FirstNotRepeatingChar("wangdanwang");
    	vector<int> data = { 1,2,3,4,5,5,5,6,7,8};
    	int count = so.StrToInt("123");
    	cout << count << endl;
    	
    	
    	
    	cout << endl;
    	return 0;
    }
  • 相关阅读:
    Android 代码规范大全
    python爬虫学习系列
    python接口测试(requests+excel)
    Jenkins系列
    postman系列
    利用Faker生成常用的测试数据
    python基础在实际写脚本过程中的一些简单运用(一)
    charles实践-通过断点调试修改request
    关于fiddler抓包的一些配置
    c#winform主题实现的一个方法
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6021313.html
Copyright © 2011-2022 走看看