vstudio 中的 argc 和 argv - 上回声

argc and argv in vstudio - to upper echo

我写了一段代码,基本上和 bash shell 中的 echo 命令做同样的事情;但如果读作参数 -c 大写所有输入 argv。但是,如果我输入 hello -c,我只输出 argc = 3

#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]){
    int i,j;

    printf("argc = %d\n", argc);
    if (!strcmp(argv[argc-1], "-c"))
        for (i = 1; i < argc-1; ++i){
            for (j = 0; j != '[=10=]'; ++j)
                putchar((char)toupper(argv[i][j]));
            putchar('\n');
        }
    else for (i = 0; i < argc; ++i)
        printf("argv[%d] = %s\n", i, argv[i]);
    return 0;
}

我想,在你的代码中

  for (j = 0; j != '[=10=]'; ++j)

有问题。您应该检查数组元素是否为空。它应该读作

for (j = 0; argv[i][j] != '[=11=]'; ++j)

也就是说,putchar() takes an int as argument, so you don't need to cast the return value of toupper()