这个C程序接受行星名称作为参数,并打印它们是否是行星.好的 case 正在奏效
./planets Venus Mercury
个
但如果加上坏的情况,我会得到Segmentation Fault
分.
./planets Venus Mercury mercury
个
造成这种情况的原因可能是什么?先谢谢你.
#include <stdio.h>
#include <string.h>
#define NUM_PLANETS 9
int main(int argc, char* argv[]) {
char *planets[] = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Pluto" };
int i, j;
for (i = 1; i < argc; i++) {
for (j = 0; j < NUM_PLANETS; j++) {
if (strcmp(argv[i], planets[j]) == 0) {
printf("%s is planet %d\n", argv[i], j + 1);
break;
}
}
if (j == NUM_PLANETS) {
printf("%s is not a planet\n", argv[i]);
}
}
}