我正在学习C,并且我参与了有关参数的讨论:int argc, char *argv[]
。
我正在尝试制作一个代码,该代码根据控制台中的参数输出结果。例如:
./a.out -E
打印"Hello World!"
./a.out -S
打印"Hello World in Spanish"
我有以下代码,但我仍然不知道如何获得它。
int main(int argc, char *argv[]) {
if(argc == 1){
printf("Hello World!");
}
else if(argc > 2){
printf("Too many arguments supplied.\n");
}
else if(argv[2] == '-S'){
printf("Hola Mundo in Spanish"); //show errors
}
else {
printf("Hello, %s!!\n", argv[1]);
}
return EXIT_SUCCESS;
}
答案 0 :(得分:2)
C中的数组索引从零开始。如果argc
为2,则argv[0]
是可执行文件的路径,而argv[1]
是第一个参数。
您遇到的另一个问题是无法将char*
字符串与==
进行比较,并且不能有单个字符'-S'
。是的,单引号用于字符,双引号用于字符串。
按如下方式使用strcmp()
中的<string.h>
:
if (strcmp(argv[1], "-S") == 0) {
printf("Hola Mundo in Spanish\n");
}