字符串转换成整型数 atoi()

 题目说明:

1、设计函数: int atoi(const char *nptr);

2、功能:把字符串转换成整型数,atoi()会扫描参数nptr字符串,如果第一个非空格字符存在,

     是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 ) 字符时停止转换,

     返回整型数。否则,返回零,

3、头文件: #include <stdlib.h>

程序一:

#include <stdio.h>

#include <stdlib.h>   //isspace()函数的头文件

int myAtoi(const char* s)

{

  int result = 0;

  int flag = 1;

  int i = 0; 

  while(isspace(s[i]))

    i++; 

  if(s[i] == '-')  //遇到负号

  {

    flag = -1;

    i++;

  } 

  if(s[i] == '+')   //遇到正号

    i++; 

  while(s[i] != '')

  { 

    if((s[i] > '9') || (s[i] < '0'))

      break; 

    int j = s[i] - '0'; 

    result = 10 * result + j;

    i++;

  } 

  result = result * flag;

  return result;

int main()

  char* a = " -1234def";

  char* b = "+5678";

  int i = myAtoi(a);

  int j = myAtoi(b);

  printf("%d ",i);

  printf("%d ",j);

  return 0;

}

程序二:

#include <cctype>
int my_atoi(const char* p){
  assert(p != NULL);
  bool neg_flag = false;// 符号标记
  int res = 0;          // 结果
  if(p[0] == '+' || p[0] == '-')
    neg_flag = (*p++ != '+');
  while(isdigit(*p)) res = res*10 + (*p++ - '0');
  return neg_flag ?0 -res : res;
}
原文地址:https://www.cnblogs.com/followyourdream/p/3364279.html