本程序使用 C 语言实现了一个将字符串转换为十六进制整数,并根据用户要求将输入转换为 3~12 进制数的功能。

#include <stdio.h>
#include <stdlib.h>

void convertToHex(char str[]) {
    int decimal = atoi(str);  // 将字符串转换为十进制数
    printf('字符串转换为十六进制数:%X\n', decimal);
}

void convertToBase(char str[], int base) {
    int decimal = atoi(str);  // 将字符串转换为十进制数

    // 转换为指定进制数
    char result[50];
    int i = 0;
    while (decimal != 0) {
        int rem = decimal % base;
        if (rem < 10)
            result[i++] = rem + '0';
        else
            result[i++] = rem - 10 + 'A';
        decimal /= base;
    }
    result[i] = '\0';

    // 反转结果
    int len = i;
    for (i = 0; i < len / 2; i++) {
        char temp = result[i];
        result[i] = result[len - i - 1];
        result[len - i - 1] = temp;
    }

    printf('字符串转换为 %d 进制数:%s\n', base, result);
}

int main() {
    char str[100];

    printf('请输入字符串:');
    scanf_s('%s', str, sizeof(str));

    convertToHex(str);

    int base;
    printf('请输入要转换的进制数(3~12):');
    scanf_s('%d', &base);

    if (base >= 3 && base <= 12)
        convertToBase(str, base);
    else
        printf('不支持的进制数!\n');

    return 0;
}

程序包含两个函数:convertToHex()convertToBase(),分别用于将字符串转换为十六进制数和指定进制数。在 main() 函数中,首先读取用户输入的字符串,然后调用 convertToHex() 函数将其转换为十六进制数。接着,根据用户输入的进制数,调用 convertToBase() 函数将输入转换为指定进制数并输出结果。

请注意,该代码假设用户输入的字符串是能够表示一个有效的十进制数的文本。如果用户输入的字符串不是有效的十进制数,将得到不可预测的结果。此外,代码只支持将输入转换为 3~12 进制数,超出该范围的进制数将被视为不支持的进制数。你可以根据实际需求进行错误处理和验证。


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

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