📄 atoi.c
字号:
/* ** Copyright 2001, Travis Geiselbrecht. All rights reserved.** Distributed under the terms of the NewOS License.*/#include <ctype.h>/*#include <stdio.h>*/static int hexval(char c){ if (c >= '0' && c <= '9') return c - '0'; else if (c >= 'a' && c <= 'f') return c - 'a' + 10; else if (c >= 'A' && c <= 'F') return c - 'A' + 10; return 0;}int atoi(const char *num){ int value = 0; if (num[0] == '0' && num[1] == 'x') { // hex num += 2; while (*num && isxdigit((uchar)*num)) value = value * 16 + hexval(*num++); } else { // decimal while (*num && isdigit((uchar)*num)) value = value * 10 + *num++ - '0'; } return value;}uint atoui(const char *num){ int value = 0; if (num[0] == '0' && num[1] == 'x') { // hex num += 2; while (*num && isxdigit((uchar)*num)) value = value * 16 + hexval(*num++); } else { // decimal while (*num && isdigit((uchar)*num)) value = value * 10 + *num++ - '0'; } return value;}long atol(const char *num){ int value = 0; if (num[0] == '0' && num[1] == 'x') { // hex num += 2; while (*num && isxdigit((uchar)*num)) value = value * 16 + hexval(*num++); } else { // decimal while (*num && isdigit((uchar)*num)) value = value * 10 + *num++ - '0'; } return value;}ulong atoul(const char *num){ int value = 0; if (num[0] == '0' && num[1] == 'x') { // hex num += 2; while (*num && isxdigit((uchar)*num)) value = value * 16 + hexval(*num++); } else { // decimal while (*num && isdigit((uchar)*num)) value = value * 10 + *num++ - '0'; } return value;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -