我想在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 []。
答案 0 :(得分:2)
有两种主要方法可以做到这一点。第一种是简单地取消引用指针。
C = *argv[4];
你也可以通过数组下标来做到这一点,它在解除引用之前隐式地为指针添加一个偏移量。
请务必先检查它是否为空,依此类推。通常,在处理指针时需要小心。
答案 1 :(得分:1)
argv[4]
是一个char
数组。您需要取消引用该数组以从中获取单个元素
C = *(argv[4]);