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

溫馨提示×

溫馨提示×

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

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

怎么在C語言項目中實現一個atoi函數

發布時間:2021-03-17 15:26:03 來源:億速云 閱讀:188 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關怎么在C語言項目中實現一個atoi函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

C語言模擬實現atoi函數的實例詳解

atoi函數,主要功能是將一個字符串轉變為整數,例如將“12345”–>12345。

1.指針為NULL
2.字符串為空字符串
3.空白字符
4.正號與負號問題
5.溢出問題
6.異常字符處理

接下來看代碼:(具體幾種問題處理都在代碼的注釋中說明)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>

//定義兩個枚舉常量來表示狀態
enum STATE
{
  VALID, //合法
  INVALID,//非法
};
enum STATE state = INVALID;
int my_atoi(const char *str)
{
  int flag = 1;
  long long ret = 0;//定義為比int存儲范圍還要大的類型,防止后面判斷溢出時出錯。
  //空指針
  assert(str);
  //空字符串
  if (*str == "\0")
  {
    return 0;
  }
  //空白字符
  while (isspace(*str))//用函數isspace判斷是否為空白字符
  {
    str++;
  }
  //遇到正負號
  if (*str == '-')
  {
    flag = -1;
    str++;
  }
  if (*str == '+')
  {
    str++;
  }
  //
  while (*str)
  {
    //if (*str >= '0'&&*str <= '9')
    if (isdigit(*str))//用函數isdigit判斷是否為數字字符
    {
      ret = ret * 10 + flag*(*str - '0');
      //判斷是否溢出
      if (ret > INT_MAX || ret < INT_MIN)
      {
        return ret;
      }
    }
    //異常字符
    else
    {
      break;
    }
    str++;
  }
  state = VALID;
  return ret;
}
int main()
{
  char *p = "12345";
  char *q = " -12345";
  int ret = my_atoi(p);
  int ret2 = my_atoi(q);
  printf("%d\n", ret);
  printf("%d\n", ret2);
  system("pause");
  return 0;
}

運行結果:

怎么在C語言項目中實現一個atoi函數

看完上述內容,你們對怎么在C語言項目中實現一個atoi函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

海城市| 包头市| 海阳市| 洛浦县| 襄垣县| 综艺| 弋阳县| 沭阳县| 交城县| 扎囊县| 南康市| 静海县| 卢氏县| 喀喇| 建昌县| 东山县| 新宁县| 黄平县| 视频| 海原县| 丰台区| 松桃| 赤水市| 巴青县| 张家界市| 惠来县| 弋阳县| 晋江市| 牟定县| 襄樊市| 开封市| 丰宁| 长顺县| 林甸县| 大姚县| 黄山市| 道孚县| 阜南县| 濮阳市| 花莲市| 翁源县|