C-返回ascii值的int函数

问题描述

我写了一个C函数,该函数应该遍历参数向量,一旦找到 irow 参数,它将读取下一个参数中的整数,以便以后可以在 main 方法

int insertRow(char*argv[],int row_number) {
    row_number = 0;
    for(int i = 0; argv[i]; i++) {
        if ( isdigit(argv[i][0]) && (strcmp(argv[i - 1],"irow") == 0) )
            row_number = argv[i][0];
    }
    printf("%d\n",row_number);
    return row_number;
}

但是,当我运行程序时:

./main irow 4

打印52(4的ascii表)。如何修复该函数,使其返回 integer 4?

解决方法

printf("%c\n",row_number);
字符串中存储的

数字以其ascii值存储。如果将值打印为数字(%d),则将显示ascii值。如果将值打印为字符(%c),则会将数字解释为匹配的字符,在这种情况下为数字