【问题标题】:How to print the hexadecimal represention of the string entered [duplicate]如何打印输入的字符串的十六进制表示[重复]
【发布时间】:2014-07-06 13:15:24
【问题描述】:
#include<stdio.h>

int isNumericChar(char s){
        return ((s > '0' && s <'9') ? 1:0);
}

int my_atoi(char* s){
        int res = 0;
        int sign = 1;
        while(*s != '\0'){
                if(isNumericChar(*s) == 0){
                        return 0;
                }
                if(*s == '-'){
                        sign = -1;
                        s++;
                }
                res = ((res * 10) + (*s - '0'));
                s++;
        }
        return (res*sign);
}

int main(){
        char *s = "924";
        printf("\natoi : %d\n",my_atoi(s));
        return 0;
}

如何将字符串转换为整数 0 和 9 输入? 有没有办法将输入的十六进制转换为十六进制表示?

【问题讨论】:

  • 您是否查看了 printf 的手册以查看它是否有相关选项?

标签: c


【解决方案1】:

你可以根据this使用printf("\natoi : %x\n",my_atoi(s));

请注意,这仅适用于非负数。

对于否定,你总是可以使用:

int my_number = my_atoi(s);
printf("\natoi : %s%x\n", (my_number < 0) ? "-" : "", my_number);

我不是很喜欢这个解决方案,但这是我目前能想到的唯一方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2023-03-18
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多