zoukankan      html  css  js  c++  java
  • 习题7-8 字符串转换成十进制整数 (15 分)

    输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

    输入格式:

    输入在一行中给出一个以#结束的非空字符串。

    输出格式:

    在一行中输出转换后的十进制数。题目保证输出在长整型范围内。

    输入样例:

    +-P-xf4+-1!#

    输出样例:

    -3905

    提交:

    #include <stdio.h>
    #include <string.h>
    
    int main() {
        char a[1000];
        gets(a);
        int len,flag = 1,mark=0,sum=0;
        len = strlen(a);
        for (int i=0; i<len; i++) {
            if (a[i] == '-' && flag == 1) mark = 1;//flag判断是否有第一次输入'-' mark标记符号 1表示负数
            else if (a[i] >= '0' && a[i] <= '9') {
                flag = 0;
                sum = sum*16 + a[i]-'0';//其中 a[i]-'0' 是字符数组转为int数组
            } else if (a[i] >= 'a' && a[i] <= 'f') {
                flag = 0;
                sum = sum*16 + a[i]-'a'+10;
            } else if (a[i] >= 'A' && a[i] <= 'F') {
                flag = 0;
                sum = sum*16 + a[i]-'A'+10;
            }
        }
        if (mark == 1) sum = -sum;//转换符号
        printf("%d",sum);//输出
        
        return 0;
    }
  • 相关阅读:
    Mvc form提交
    FlexiGrid 使用 全选、自动绑定
    Mysql Insert Or Update语法例子
    orderby与groupby同时使用
    SQLSTATE[HY000] [2002] No such file or directory in
    swoole安装
    关于商城分类查询表结构与数据查询
    查询数据库每张表的信息
    php 正则验证
    PHP代码优化
  • 原文地址:https://www.cnblogs.com/cgy-home/p/15091990.html
Copyright © 2011-2022 走看看