从C中的* char []变量获取第一个char

时间:2013-03-08 19:09:32

标签: c pointers casting char c-strings

我想在C中获取字符串的第一个字符(char [])。

unsigned int N;
unsigned int F;
unsigned int M;
char C;
int main (int argc, char *argv[]){
    if (argc!=5){
        printf("Invalid number of arguments! (5 expected)\n");
        exit(-1);
    }
    N = atoi(argv [1]);
    F = atoi(argv [2]);
    M = atoi(argv [3]);
    C = (char) argv[4]; //this way gives a wrong char value to variable C

上面的代码给出了警告:从不同大小的整数转换为指针。

编辑:正如评论中所指出的,argv是char * [],而不是char []。

2 个答案:

答案 0 :(得分:2)

有两种主要方法可以做到这一点。第一种是简单地取消引用指针。

C = *argv[4];

你也可以通过数组下标来做到这一点,它在解除引用之前隐式地为指针添加一个偏移量。

请务必先检查它是否为空,依此类推。通常,在处理指针时需要小心。

答案 1 :(得分:1)

argv[4]是一个char数组。您需要取消引用该数组以从中获取单个元素

C = *(argv[4]);