This question already has answers here:
Convert decimal to hexadecimal value
                                
                                    (3个答案)
                                
                        
                                5年前关闭。
            
                    
#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的整数?
有没有办法将输入的十六进制转换为以十六进制表示形式打印?

最佳答案

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

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

对于否定,您可以始终使用:

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


我不太喜欢这种解决方案,但这是我现在可以想到的唯一方法。

关于c - 如何打印输入的字符串的十六进制表示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23723160/

10-13 03:54