亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

將字符串轉換成整數(atoi的實現)

發布時間:2020-05-31 01:50:48 來源:網絡 閱讀:745 作者:腳印C 欄目:編程語言

思路:
1.‘+’,‘-’問題
2.NULL,‘\0’問題
3.其他字符問題,包括空格、tab
4.越界溢出問題
5.數字前面幾位是0

#include<iostream>
using namespace std;
#include<stdlib.h>

enum Status{ KValid = 0, KInvalid }; //KVlid-合法 KInvalid-非法
int g_nStatus = KValid;  //在最后得到結果時,判斷是合法的0,還是非法的非0

int StrToInt(const char* str)
{
	long long StrToIntCore(const char *digit, bool minus);
	g_nStatus = KInvalid;
	long long num = 0;

	if (str != NULL&&*str != '\0')//判空,'\0'
	{
		bool minus = false; //符號 默認為負

		if (*str == '+')
		{
			str++;
		}
		else if (*str == '-')
		{
			str++;
			minus = true;
		}

		if (*str != '\0')
		{
			num = StrToIntCore(str, minus);
		}
	}

	return (int)num;
}

long long StrToIntCore(const char *digit, bool minus)
{
	long long num = 0;
	while (*digit != '\0')
	{
		if (isdigit(*digit)) //while(*digit >= '0'&&*digit <= '9')
		{
			int flag = minus ? -1 : 1;
			num = num * 10 + flag*(*digit - '0');

			if ((!minus&&num > 0x7fffffff) || (minus&&num < (signed int)0x80000000))
			{
				num = 0;
				break;
			}

			digit++;
		}
		else
		{
			num++;
			break;
		}
	}

	if (*digit == '\0')
	{
		g_nStatus = KValid;
	}

	return num;
}

int main()
{
	char str[] = "-12345";
	char str1[] = "-012345";
	char str2[] = "012345";
	char str3[] = "--12345";

	cout << StrToInt(str) << endl;
	cout << g_nStatus << endl;
	cout << StrToInt(str1) << endl;
	cout << g_nStatus << endl;
	cout << StrToInt(str2) << endl;
	cout << g_nStatus << endl;
	cout << StrToInt(str3) << endl;
	cout << g_nStatus << endl;

	system("pause");
	return 0;
}

將字符串轉換成整數(atoi的實現)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

锦屏县| 桓仁| 无为县| 县级市| 文水县| 满城县| 龙里县| 江西省| 霍山县| 珠海市| 新乐市| 三门峡市| 长阳| 集安市| 察隅县| 枣强县| 东山县| 广昌县| 颍上县| 长海县| 保定市| 牙克石市| 饶河县| 漳浦县| 瑞金市| 庆元县| 五大连池市| 顺昌县| 盱眙县| 常州市| 兰州市| 夹江县| 南丰县| 长治市| 九寨沟县| 泸水县| 万安县| 武功县| 乌拉特中旗| 聂拉木县| 武强县|