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; }