字符串处理(将字符串中符合十六进制数据格式的数字和字符按照其对应的十进制数值进行累加) C语言xdoj704

题目描述:

        输入由数字和字符构成的字符串(不包含空格),将字符串中符合十六进制数据格式的数字和字符按照其对应的十进制数值进行累加,并输出累加结果,如果字符串中不含有任何满足十六进制格式的字符,则输出结果 NO。

输入格式

        输入一行字符串,字符串 c 的长度不超过 50。

输出说明

        输出一个整数,表示十进制的累加值。

输入样例 1

3A5cH5o

输出样例 1

35

输入样例 2

GjoniuJk

输出样例 2

NO

#include <stdio.h>
#include <string.h>

//字符串处理1
int main() {
    int i = 0, flag = 0, sum = 0;
    char str[51] = {0};
    gets(str);
    for (i = 0; i < strlen(str); i++) {
        if (str[i] == '0') sum += 0, flag = 1;
        else if (str[i] == '1') sum += 1, flag = 1;
        else if (str[i] == '2') sum += 2, flag = 1;
        else if (str[i] == '3') sum += 3, flag = 1;
        else if (str[i] == '4') sum += 4, flag = 1;
        else if (str[i] == '5') sum += 5, flag = 1;
        else if (str[i] == '6') sum += 6, flag = 1;
        else if (str[i] == '7') sum += 7, flag = 1;
        else if (str[i] == '8') sum += 8, flag = 1;
        else if (str[i] == '9') sum += 9, flag = 1;
        else if (str[i] == 'A' || str[i] == 'a') sum += 10, flag = 1;
        else if (str[i] == 'B' || str[i] == 'b') sum += 11, flag = 1;
        else if (str[i] == 'C' || str[i] == 'c') sum += 12, flag = 1;
        else if (str[i] == 'D' || str[i] == 'd') sum += 13, flag = 1;
        else if (str[i] == 'E' || str[i] == 'e') sum += 14, flag = 1;
        else if (str[i] == 'F' || str[i] == 'f') sum += 15, flag = 1;
    }
    if (!flag) printf("NO\n");
    else printf("%d\n", sum);
    return 0;
}

注:易错点(为什么设置标记 flag 以及 flag 放到哪)

当输入为 000 时, sum 为0,字符串中含有十六进制的字符,不能输出NO;

当输入为 hijk 时, sum 为0,字符串中不含十六进制字符,输出NO;

当输入为混合形式如12abhj 时,输出sum 为求和(普通情况)。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 05:18:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 05:18:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 05:18:01       82 阅读
  4. Python语言-面向对象

    2024-01-11 05:18:01       91 阅读

热门阅读

  1. 7593 蜘蛛、蜻蜓与蝉(2)

    2024-01-11 05:18:01       45 阅读
  2. Steam游戏特点,steam游戏如何购买和体验?

    2024-01-11 05:18:01       60 阅读
  3. Ubuntu18.04 Qt 实现MQTT

    2024-01-11 05:18:01       67 阅读
  4. C#进行Web API开发时,遇到的常见问题

    2024-01-11 05:18:01       57 阅读
  5. Fiddler抓包 -- 使用教程

    2024-01-11 05:18:01       60 阅读
  6. 【Leetcode】772.基本计算器III (Hard)

    2024-01-11 05:18:01       58 阅读
  7. m401a电视盒子

    2024-01-11 05:18:01       56 阅读
  8. 系列十六、抽象类 & 接口

    2024-01-11 05:18:01       52 阅读