ASCII转整数:使用atoi时无法区分错误和0(0x30)

问题描述 投票:0回答:1

atoi 对于数字 0 (0x30) 返回零 (0x00) 如果出现错误,它还会返回零 (0x00)。 我如何辨别哪个是哪个?

// In both QT and GCC i is:
int i = atoi("0");    // 0 (should be success)
int i = atoi("NON");  // 0 (should be failure)
int i = atoi("1");    // 1 (success)
c
1个回答
0
投票

atoi()
函数将字符串转换为
int
,所以它的使用如下:

#include <stdio.h>
#include <stdlib.h> // For atoi()

int main() {
    int number = atoi("1234");

    printf("The integer value is: %d\n", number);

    return 0;
}

它只是将字符串内部的内容转换为数字。


如果要显示字符的 ASCII 代码,可以这样做:

#include <stdio.h>

int main()
{
    int i = '0';
    // integer:
    printf("%d", i);

    printf("\n");

    // hexadecimal:
    printf("0x%x", i);

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.