我是C的新手并且有几个基本问题;我阅读了一些教程并查看了几个问题,但由于一些措辞,我仍然有点困惑。
#include <stdio.h>
int main(int argc, char **argv){
printf("%s",argv[1]);
}
让我说我编译并运行文件:./test blah blah
据我了解,argv[1]
指向blah
的指针;如果我需要用blah访问这些字母,我该怎么办呢?
我尝试过:printf("%s\n", argv[1][1])
和char *pointer = argv[1]
,但都没有效果。
我误解了一个概念吗?或者我没有把编码部分弄好。
答案 0 :(得分:5)
argv[1][1]
的值类型为char
(因为argv
的类型为char **
)所以您应该使用%c
(unsigned character) printf format:
printf("%c\n", argv[1][0]); // => b
printf("%c\n", argv[1][1]); // => l
printf("%c\n", argv[1][2]); // => a
printf("%c\n", argv[1][3]); // => h