strupr 不是将字符串转换为大写的吗?为什么一用程序停止工作呢?
直接上代码,求大神指点
程序代码://程序判断输入是不是行星名,并返回提示语。
//例:命令行输入planet mercury运行程序,程序输出mercury is planet 1
//例:命令行输入planet sun运行程序,程序输出sun is not a planet
//注:忽略输入的命令行参数的大小写
//程序名为planet.c
#include <stdio.h>
#include <string.h>
#define NUM_PLANETS 9
//将输入的命令行参数与一个planets字符数组依次比较
int main(int argc, char *argv[])
{
char *planets[] = {"Mercury", "Venus", "Earth",
"Mars", "Jupiter", "Saturn",
"Uranus", "Neptune", "Pluto"};
int i, j;
for (i = 1; i < argc; i++){
for (j = 0; j < NUM_PLANETS; j++)
if (strcmp(strupr(argv[i]), strupr(planets[j])) == 0){ //这里只要把两个strupr都删除程序就能正常工作,否则就停止工作。但是删除strupr后输入的命令行参数就有大小写的要求了。为什么不能使用strupr呢?
printf("%s is planet %d\n", argv[i], j + 1);
break;
}
if (j == NUM_PLANETS)
printf("%s is not a planet\n", argv[i]);
}
return 0;
}








