将一个字符串转换为十进制(c语言)

该博客介绍了一个C语言函数My_atoi,用于将包含8进制、16进制和10进制的字符串转换为十进制数。函数首先检查字符串是否为空,然后处理前导空格、正负号,并根据字符串开头的字符决定采用哪种进制进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所用到的头文件

这个字符串可能有一下几种形式

“     0123” “   0x123a” "+123" "   -0123a"等等

既有8进制,又有16进制,还有10进制,还有一种可能啥也不是

 

int My_atoi(const char* str) 
{
    //assert
    assert(str != NULL);
    if (str == NULL)
    {
        return -2;
    }
    while (isspace(*str))   //判断字符串开头是否有空格
    {
        str++;