题目描述:输入由数字和字符构成的字符串(不包含空格),将字符串中符合十六进制数据 格式的数字和字符按照其对应的十进制数值进行累加,并输出累加结果,如果字符串中不含 有任何满足十六进制格式的字符,则输出结果 NO。
输入格式 输入一行字符串,字符串 c 的长度不超过 50。
输出说明 输出一个整数,表示十进制的累加值。
输入样例 1
3A5cH5o
输出样例 1
35
输入样例 2
GjoniuJk
输出样例 2
NO
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str[101] = { 0 };
gets_s(str);
int sum = 0;
int flag = 0;
int len = strlen(str);
for (int i = 0; i < len; i++)
{
if (isxdigit(str[i]))
{
flag = 1;
if (isdigit(str[i]))
{
sum += str[i] - '0';
}
else
{
str[i] = toupper(str[i]);
sum += 10 + str[i] - 'A';
}
}
}
if (flag == 0)
{
printf("NO");
}
else
{
printf("%d", sum);
}
return 0;
}