精华内容
下载资源
问答
  • atoi实现

    2016-08-15 00:26:46
    http://blog.csdn.net/richerg85/article/details/18729235 atoi实现 [cpp] view plain copy   int atoi(char *str)  {   if(!str)   return -1;   

    http://blog.csdn.net/richerg85/article/details/18729235

    atoi实现

    [cpp] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. int atoi(char *str)  
    2. {  
    3.         if(!str)  
    4.                 return -1;  
    5.         bool bMinus=false;  
    6.         int result=0;  
    7.   
    8.         if(('0'>*str || *str>'9')&&(*str=='+'||*str=='-'))  
    9.         {  
    10.                if(*str=='-')  
    11.                 bMinus=true;  
    12.                *str++;  
    13.         }  
    14.         while( *str != '\0')  
    15.         {  
    16.                 if('0'> *str || *str>'9')  
    17.                         break;  
    18.                 else  
    19.                         result = result*10+(*str++ - '0');  
    20.         }  
    21.   
    22.         if (*str != '\0')//no-normal end  
    23.                 return -2;  
    24.   
    25.         return bMinus?-result:result;  
    26. }  

    重写的atoi函数,没有考虑溢出的情况。

     if(('0'>*str || *str>'9')&&(*str=='+'||*str=='-'))//判读第一个字符是否为数字的正负号

    if (*str != '\0')//no-normal end,当上文的while循环不正常退出,应视为字符串不合法,例如“+1234abc”

    测试:

    [cpp] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. char *c1 = "12345";  
    2.         char *c2 = "-12345";  
    3.         char *c3 = "bat-123";  
    4.         char *c4 = "+123abc";  
    5.   
    6.   
    7.         printf("c1=%d\n",atoi(c1));  
    8.         printf("c2=%d\n",atoi(c2));  
    9.         printf("c3=%d\n",atoi(c3));  
    10.         printf("c4=%d\n",atoi(c4));  

    输出结果为:

    c1=12345
    c2=-12345
    c3=-2
    c4=-2

    展开全文
  • atoi 实现

    2014-08-14 15:20:00
    int atoi(const char *nptr); 把字符串转换成整型数。ASCII to integer 的缩写。 头文件: #include <stdlib.h> 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到...

    int atoi(const char *nptr);

    把字符串转换成整型数。ASCII to integer 的缩写。

    头文件: #include <stdlib.h>

    参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零,

     1 #include <iostream>
     2 #include <cctype>
     3 
     4 //参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零
     5 int atoi(const char *nptr)
     6 {
     7     if (!nptr)        //空字符串
     8         return 0;
     9 
    10     int p = 0;
    11     while(isspace(nptr[p]))        //清除空白字符
    12         p++;
    13     
    14     if (isdigit(nptr[p]) || '+' == nptr[p] || '-' == nptr[p])        //清除后第一个是数字相关
    15     {
    16         int res = 0;
    17         bool flag = true;        //正负数标志
    18 
    19         //对第一个数字相关字符的处理
    20         if('-' == nptr[p])
    21             flag = false;
    22         else if('+' != nptr[p])
    23             res = nptr[p] - '0';
    24 
    25         //处理剩下的
    26         p++;
    27         while(isdigit(nptr[p]))
    28         {
    29             res = res * 10 + (nptr[p] - '0');
    30             p++;
    31         }
    32 
    33         if(!flag)            //负数
    34             res = 0 - res;
    35         return res;
    36     } 
    37     else
    38     {
    39         return 0;
    40     }
    41 }
    42 int main() 
    43 { 
    44     using std::cin;
    45     using std::cout;
    46     using std::endl;
    47 
    48     cout << atoi("213") <<endl << atoi("+2134") << endl << atoi("-342") <<endl << atoi("   -45d") << endl
    49             <<atoi("\t    +3543ddd") <<endl << atoi("\n56.34") << endl << atoi("   .44") << endl << atoi("") <<endl
    50             << atoi("\t") << endl <<atoi("\o") << endl;
    51 
    52     cin.get();
    53 } 

    转载于:https://www.cnblogs.com/jiayith/p/3912629.html

    展开全文
  • atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)
  • atoi函数原型: int atoi(const char *pstr)用法:将字符串转换成整型数;atoi()会扫描参数sptr字符串,跳过前面的空格字符,直到遇到数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转换,并将...

    atoi函数

    原型: int atoi(const char *pstr)

    用法:将字符串转换成整型数;atoi()会扫描参数sptr字符串,跳过前面的空格字符,直到遇到数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转换,并将结果返回。

    程序代码:

    int my_atoi(char* pstr){

    int ret_interger = 0;//返回值

    int interger_sign = 1; //标志符号

    //判断指针是否为空

    if(pstr == NULL){

    printf("空指针\n");

    return 0;

    }

    //跳过前面的空格字符

    while(*pstr == ' '){

    pstr++;

    }

    //判断正负号

    if(*pstr == '-'){

    interger_sign = -1;

    }

    if(*pstr == '-'|| *pstr == '+'){

    pstr++;

    }

    //把数字字符转换成整数,并把最后的整数赋值给ret_interger

    while(*pstr>='0'&&*pstr<='9'){

    ret_interger = ret_interger*10+*pstr - '0';

    pstr++;

    }

    ret_interger = ret_interger*interger_sign;

    return ret_interger;

    }

    主函数:

    int main(){

    char a[] = " -100";;

    char b[] = " 360";

    int c;

    c = my_atoi(a)+ my_atoi(b);

    printf("a:%d\n",my_atoi(a));

    printf("b:%d\n",my_atoi(b));

    printf("except :260 actual: %d \n",c);

    }

    检测结果:

    24bd86bbceca49858d12a76696f62fc0.jpg

    展开全文
  • c函数itoa和atoi实现

    2014-07-17 22:29:23
    1、itoa函数实现   其中power相当于类似于1234,其power=1000;134,其power=100   *string++='0'+i/power;//获得取得字符的asicii码 ...2、atoi实现   int atoi(char *str) {  if(!

    1itoa函数实现

    #include <stdio.h>
     
    void itoa(int i, char *string)
    {
            int power=0,j=0;
     
            j=i;
            for( power=1;j>10;j/=10)
                    power*=10;
     
            for(;power>0;power/=10)
            {
                    *string++='0'+i/power;
                    i%=power;
            }
            *string='\0';
            printf("%s\n",string);
    }
    void main()
    {
            char string[20];
            itoa(12345, string);
            printf("%s\n",string);
    } 

    其中power相当于类似于1234,其power=1000;134,power=100 

    *string++='0'+i/power;//获得取得字符的asicii 

    i/power取得字符,例如1234/1000=1;234/100=2 

    2atoi实现 

    int atoi(char *str)
    {
            if(!str)
                    return -1;
            bool bMinus=false;
            int result=0;
     
            if(('0'>*str || *str>'9')&&(*str=='+'||*str=='-'))
            {
                   if(*str=='-')
                    bMinus=true;
                   *str++;
            }
            while( *str != '\0')
            {
                    if('0'> *str || *str>'9')
                            break;
                    else
                            result = result*10+(*str++ - '0');
            }
     
            if (*str != '\0')//no-normal end
                    return -2;
     
            return bMinus?-result:result;
    }

    重写的atoi函数,没有考虑溢出的情况。 

     if(('0'>*str || *str>'9')&&(*str=='+'||*str=='-'))//判读第一个字符是否为数字的正负号

    if (*str != '\0')//no-normal end,当上文的while循环不正常退出,应视为字符串不合法,例如“+1234abc

    测试:

    char *c1 = "12345";
            char *c2 = "-12345";
            char *c3 = "bat-123";
            char *c4 = "+123abc";
     
     
            printf("c1=%d\n",atoi(c1));
            printf("c2=%d\n",atoi(c2));
            printf("c3=%d\n",atoi(c3));
            printf("c4=%d\n",atoi(c4));
    

    输出结果为: 

    c1=12345

    c2=-12345

    c3=-2

    c4=-2 

     

    展开全文
  • C语言 atoi实现

    2019-07-28 08:13:56
    #include <stdio.h>#include <stdlib.h>#include <string.h>int myatoi( const char *str ){ if (str == 0 ) return 0; char c; int nRet = -1; for (;;) { c = *(str++)...
  • c的atoi实现

    2017-02-11 16:49:17
    上一篇博客讲的是atoi()函数的功能及举例,现在呢,就自己写写代码(根据atoi()的功能)来表示atoi()函数的实现。我在这里先把atoi()函数的功能贴出来,也好有个参考啊~~~  atoi()函数的功能:将字符串转换成...
  • VC atoi实现

    2015-06-10 09:52:56
    //代码如下 int MyAtoi(const char *str) { if(str == NULL) { return -1; } int i =0; const char *p = str; char c; bool bFuShu = false; //负数符号判断 if(p[0] =
  • itoa atoi 实现

    2013-03-17 21:46:59
    在准备面试的过程中,发现了一条道常见题,itoa atoi,下面就给出这道题的解决方法 首先     对于itoa,函数原型   #include using namespace std; void myitoa(int num,char * str,int radix) { ...
  • java atoi实现

    2014-09-18 18:15:37
    package test; public class AtoiTest { public static void main(String[] args) { String str = "-2147483649"; long num = 0; try { num = strToInt(str); System.out.print(num);... } catch (Exc
  • atoi函数的实现,以及其中有fgets()和scanf()区别的一些使用
  • 考察点: 1. 不合法检查 a. NULL  b. "" c....d....e....基于上述考虑的代码如下,采用一个全局状态变量来处理不合法和溢出情况。...int atoi(const char *s) { char *p; int sign; long long total;
  • 面试编程——atoi实现

    2014-05-06 09:16:01
    // my_atoi // // Created by on 14-5-6. // Copyright (c) 2014年 yuanbo. All rights reserved. // /* 基础需求: (1)‘+’、‘-’号 (2)开头空格 (3)合法性判断 (4)溢出判断 高级需求(未实现)...
  • 自写atoi实现函数

    千次阅读 2011-05-01 14:21:00
    闲着没事,写了一下atoi函数的实现atoi函数的实现主要有三个方面:1、字符的过滤原则2、符号的判定3、int类型的溢出问题。这是实现代码:#include #include #include #include using namespace std; ...
  • 但总的来说,这个版本的atoi应该是实现中最为完整的版本了吧(有问题的话后续再补充)。 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_...
  • int Myatoi(const char *str) { assert(str != NULL); if(str == NULL) return 0; int tmp = 0; int flg = 1;//符号 while(*str == ' ')//开头空格 str++; if(*str == '-') ... if(*str...
  • 2.编码实现字符串转整型的函数(实现函数atoi的功能),据说是神州数码笔试题。如将字符 串 ”+123”123, ”-0123”-123, “123CS45”123, “123.45CS”123, “CS123.45”0 3.快速排序(东软喜欢考类似的算法填空...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,531
精华内容 16,612
关键字:

atoi实现