相关疑难解决方法(0)

检测strtol失败

如何检测strtol()是否未转换数字?我在下面的简单案例中对它进行了测试并输出了0.现在显而易见的问题是如何区分非转换和0的转换?

long int li1;
li1 = strtol("some string with no numbers",NULL,10);
printf("li1: %ld\n",li1);

****
li1: 0
Run Code Online (Sandbox Code Playgroud)

c

12
推荐指数
1
解决办法
1万
查看次数

atoi忽略字符串中的一个字母进行转换

我正在使用atoi将字符串integer值转换为整数.但首先我想测试函数的不同情况,所以我使用了以下代码

#include  <stdio.h>

int main(void)
{
    char *a ="01e";
    char *b = "0e1";
    char *c= "e01";
    int e=0,f=0,g=0;        
    e=atoi(a);
    f=atoi(b);
    g=atoi(c);
    printf("e= %d  f= %d  g=%d  ",e,f,g);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码返回e= 1 f= 0 g=0 我不知道为什么它返回1"01e"

c atoi

3
推荐指数
1
解决办法
2405
查看次数

标签 统计

c ×2

atoi ×1