#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的整数? 有没有办法将输入的十六进制转换为以十六进制表示形式打印?
答案 0 :(得分:0)
您可以根据this使用printf("\natoi : %x\n",my_atoi(s));
。
请注意,这仅适用于非负数。
对于否定,您可以随时使用:
int my_number = my_atoi(s);
printf("\natoi : %s%x\n", (my_number < 0) ? "-" : "", my_number);
我不太喜欢这个解决方案,但这是我现在能想到的唯一方法。