91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

將字符串轉換成整數(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

丹寨县| 南溪县| 武冈市| 北辰区| 安平县| 西宁市| 子洲县| 综艺| 始兴县| 儋州市| 绥中县| 尉犁县| 庆安县| 岳普湖县| 金阳县| 稷山县| 冕宁县| 交口县| 铜山县| 黔西县| 洛川县| 北辰区| 沙田区| 轮台县| 衡水市| 霍城县| 涞水县| 金塔县| 泸州市| 桂东县| 象山县| 卢龙县| 横山县| 连平县| 浙江省| SHOW| 镇坪县| 兰考县| 乳源| 宜昌市| 城步|