This question already has answers here:
Convert decimal to hexadecimal value
(3个答案)
5年前关闭。
如何将字符串转换为输入的0和9的整数?
有没有办法将输入的十六进制转换为以十六进制表示形式打印?
我不太喜欢这种解决方案,但这是我现在可以想到的唯一方法。
(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