首页 > 解决方案 > 将 char 数转换为 int c

问题描述

所以基本上我的问题是我有来自标准输入的 argv 数组,如果我输入./a.out 1 我想将此1转换为intlong,问题是如果我将转换为 long 它会将数字转换为随机数如果我将它转换为 int,我可能会收到警告和错误。

程序:

#include <stdio.h>

int main(int argc, char* argv[]) {
    int j = (int) argv[1];
    printf("* j = %d\n",j);
    return 0;
}

标签: ccasting

解决方案


尝试将其更改为:

int j = atoi(argv[1]);

您可能还需要添加到顶部:

#include <stdlib.h>

编辑:为了满足这些孩子和他们新奇的标准功能。(“验证”这个和“未定义的行为”......在我的日子里,我们应得的atoi!我们很幸运拥有它!)

char* endPtr;
long j = strtol(argv[1], &endPtr, 10);
printf("j = %ld\n", j);

推荐阅读