字符串处理(将字符串中符合十六进制数据格式的数字和字符按照其对应的十进制数值进行累加) 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 为求和(普通情况)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/341185.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

为感谢用户对Solmash的支持&#xff0c;Solmash 特别推出“Solmash早鸟激励计划”&#xff0c;以回馈社区的早期参与者&#xff0c;这是专为已经参与Staking Pool或Honest Pool的用户推出的激励。 Solmash NFT激励 被列入早鸟计划的用户&#xff0c;可通过点击&#xff1a;sol…

RTL编码(1)——概述

一、RTL级描述 RTL&#xff08;Register Transfer Level&#xff09;级&#xff1a;寄存器&#xff0b;组合逻辑&#xff0c;其功能与时序用Verilog HDL&#xff08;以下简称Verilog&#xff09;或VHDL代码描述。 RTL描述包含了同步数字电路最重要的三个特征&#xff1a;组合逻…

单目测距(车辆测距+前车碰撞预警)-基于yolov8/yolov7/yolov5——毕业设计

一、开发环境 部署平台&#xff1a;英伟达的Jetson Nano 环境&#xff1a;Linux ROS 语言&#xff1a;C 设备&#xff1a;1920*1080像素的摄像头、开发板。 模型&#xff1a;yolo-v8s 二、单目测距实现思路 0、标定相机和车辆&#xff08;假设已经标定完成&#xff09; 1、通…

Python实战:计算向量夹角及相关系数

文章目录 一、实战概述二、计算向量夹角&#xff08;一&#xff09;思路分析&#xff08;二&#xff09;代码实现1、创建程序&#xff0c;计算向量夹角2、运行程序&#xff0c;查看结果 三、计算向量相关系数&#xff08;一&#xff09;相关系数概念&#xff08;二&#xff09;…

c++全排列

目录 next_permutation()函数 例 perv_permutation()函数 例 next_permutation()函数 next_pernutation()函数用于生成当前序列的下一个排序。它按照字典序对序列进行重新排序&#xff0c;如果存在下一个排列&#xff0c;则将当前序列更改为下一个排列&#xff0c;并返回t…

DataX的安装使用

DataX概述&#xff1a; DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;实现包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。DataX采用了框架 插件 的模式&#xff0c;目前已开源&#xff0c;代…

一键去背景怎么去?使用这些智能抠图软件即可已经去背景

作为一名设计师&#xff0c;我们的工作不仅仅是追逐创意的火花&#xff0c;为品牌和产品打造独特的形象。在美好的表象之下&#xff0c;有一项常常让我们苦恼的“必修课”——抠图。抠图是设计过程中不可或缺的一环&#xff0c;它要求我们对图像进行精细的处理&#xff0c;以确…

物联网通讯协议NB-lot和LoRa差异分析

像把大象装冰箱一样&#xff0c;物联网&#xff0c;万物互联也是要分步骤的。 一、感知层(信息获取层)&#xff0c;即利用各种传感器等设备随时随地获取物体的信息; 二、网络层(信息传输层)&#xff0c;通过各种电信网络与互联网的融合&#xff0c;将物体的信息实时准确地传递…

C++力扣题目257--二叉树的所有路径

给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,5] 输出&#xff1a;["1->2->5","1->3"]示例 …

pytorch12:GPU加速模型训练

目录 1、CPU与GPU2、数据迁移至GPU2.1 to函数使用方法 3、torch.cuda常用方法4、多GPU并行运算4.1 torch.nn.DataParallel4.2 torch.distributed加速并行训练 5、gpu总结 1、CPU与GPU CPU&#xff08;Central Processing Unit, 中央处理器&#xff09;&#xff1a;主要包括控制…

你知道程序员如何利用citywork实现财富自由吗?

周末到了&#xff0c;我要去citywalk寻找心灵的呼吸&#xff01;”有谁没有设想过疲惫的工作日之后好好地去走一走&#xff0c;亲近大自然呢&#xff1f;谁又不想在闲暇之余唤起对生活的趣味呢&#xff1f;可是对于我们悲催的打工人而言&#xff0c;没有citywalk&#xff0c;只…

【LangChain学习之旅】—(5) 提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案

【LangChain学习之旅】—&#xff08;5&#xff09; 提示工程&#xff08;上&#xff09;&#xff1a;用少样本FewShotTemplate和ExampleSelector创建应景文案 提示的结构LangChain 提示模板的类型使用 PromptTemplate使用 ChatPromptTemplateFewShot 的思想起源使用 FewShotPr…