zoukankan      html  css  js  c++  java
  • 利用指针完成将一个数字字符串转换为int整数的程序。

    題目内容:
    问题描述:本题利用指针完成将一个数字字符串转换为int整数的程序。
    Input
    输入数据可以是多组,每组是一个字符串。
    Ouput
    输出将这个字符串转换为int整数的形式。说明,如果输入字符串的第一个字符为“-”,则此数为负数,如果第一个字符为“+”或没有符号表示为正数。如果第一个字符或符号位后的第一个字符为非数字字符(‘0’——‘9’之间的为数字字符),则输出结果为0.字符串中其他位置上遇到非数字字符,则将该字符前面的数字字符转换为整数。
    输入输出说明:

    Input

    123
    -12345
    +678
    -12a
    +s
    -q
    ksd


    Output

    123
    -12345
    678
    -12
    0
    0
    0


    代码编辑:


    #include <stdio.h>
    #include <stdlib.h>
    
    int atoi(char *p)
    {
        int i,result=0;
        int j; //表示当前扫描到非数字字符的个数
    
        if(p[0]!='+'&&p[0]!='-'&&(p[0]>'9'||p[0]<'0'))
            return 0;                  //非法字符
    
        for(i=0,j=0; p[i]!=''; i++)
        {
            if(p[i]>='0'&&p[i]<='9')
                result=result*10+(p[i]-'0');//把字符数字转化为整型数字:ch - '0'
            else
                j++;
    
            if(p[0]=='-'||p[0]=='+')
            {//当数据以正负号开头时,第2次遇到非数字字符时(j=2),终止扫描
                if(j==2)
                    break;
            }
            else
            {//数据不是以正负号开头时,一遇到非数字字符,终止扫描
                if(j==1)
                    break;
            }
        }
        if(p[0]=='-')
            result=-result;
        return result;
    }
    
    int main()
    {
        char str[50];
        int k;
        while(scanf("%s",str)!=-1)
        {
            k=atoi(str);
            printf("%d
    ",k);
        }
        return 0;
    }
    
  • 相关阅读:
    Python元组、列表、字典
    测试通过Word直接发布博文
    Python环境搭建(windows)
    hdu 4003 Find Metal Mineral 树形DP
    poj 1986 Distance Queries LCA
    poj 1470 Closest Common Ancestors LCA
    poj 1330 Nearest Common Ancestors LCA
    hdu 3046 Pleasant sheep and big big wolf 最小割
    poj 3281 Dining 最大流
    zoj 2760 How Many Shortest Path 最大流
  • 原文地址:https://www.cnblogs.com/zhanyeye/p/9746133.html
Copyright © 2011-2022 走看看