int conv(char hex[]) { int len = strlen(hex); if (hex[len-1] != 'H' && hex[len-1] != 'h') { // 判断是否以 H 或 h 结尾 return -1; } int ans = 0; for (int i = 0; i < len-1; i++) { if (hex[i] >= '0' && hex[i] <= '9') { // 0~9 数字字符直接转换 ans = ans * 16 + hex[i] - '0'; } else if (hex[i] >= 'A' && hex[i] <= 'F') { // A~F 字符转换为 10~15 ans = ans * 16 + hex[i] - 'A' + 10; } else if (hex[i] >= 'a' && hex[i] <= 'f') { // a~f 字符转换为 10~15 ans = ans * 16 + hex[i] - 'a' + 10; } else { // 非法字符返回 -1 return -1; } } return ans;

编写函数int convchar hex将16进制的数字字符串转换为十进制整数要求主函数中输入16进制数字字符串调用conv函数输出其十进制整数。16进制数字字符串的位数要求在6位以下1位以上并以H或h结尾。请只提供子函数的编写。【样例输入】57ABH【样例输出】22443#include stdioh#include stdlibhint convchar hex;int main

原文地址: https://www.cveoy.top/t/topic/evFS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录