我想获取 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[]。
最佳答案
有两种主要方法可以做到这一点。第一种是简单地取消引用指针。
C = *argv[4];
您还可以通过数组下标来完成此操作,这会在取消引用指针之前隐式向指针添加偏移量。
一定要先检查是否为null,等等。一般来说,处理指针时需要小心。
关于c - 从 C 中的 *char[] 变量获取第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15301495/