作业:不使用字符串函数将输入字符转换成整数值

作业详情:编写程序,把键盘输入的一个数字字符串转换成一个整数并输出。例如,若输入字符串“-1234”,则函

数把它转换成整数值-1234.要求:不得调用C语言提供的将字符串转换成整数的函数。

#include <stdio.h>
#include <string.h>
#include <math.h>
#define  TRUE 0
#define  FALSE 1

void main(void){

    char szraw[10];
    char tmp;

    //TRUE负数,FALSE正数
    int minus = FALSE;

    int idx = 0,iret = 0, len = 0;

    printf("请输入数字:");
    scanf("%s",&szraw);

    len = strlen(szraw);
    do 
    {
        tmp = szraw[idx];
        if(idx == 0 && tmp == '-'){
            minus = TRUE;
            len -= 1;
            idx += 1;
            continue;
        }

        // 负数
        if(minus ==TRUE)
            iret += (tmp-'0') * pow(10.0, len-idx++);
        //正数
        if( minus == FALSE)
            iret += (tmp-'0') * pow(10.0, len-idx++-1);

    } while (szraw[idx] !='\0');

    if(minus == TRUE) iret = -iret;
    printf("%d\n",iret);
    
}

在线编译测试:https://ideone.com/sXagT9

猜你喜欢

转载自www.cnblogs.com/passedbylove/p/9153895.html