【问题标题】:argc and argv in vstudio - to upper echovstudio 中的 argc 和 argv - 到上回声
【发布时间】:2015-09-13 01:48:18
【问题描述】:

我在 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 != '\0'; ++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;
}

【问题讨论】:

    标签: c visual-studio-2013 printf command-line-arguments argv


    【解决方案1】:

    我认为,在你的代码中

      for (j = 0; j != '\0'; ++j)
    

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

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

    也就是说,putchar()int 作为参数,因此您不需要强制 toupper() 的返回值。

    【讨论】:

      猜你喜欢
      • 2013-09-08
      • 2018-11-30
      • 1970-01-01
      • 2011-04-15
      • 2012-04-20
      • 2013-02-02
      • 1970-01-01
      • 2017-12-22
      • 2020-10-12
      相关资源
      最近更新 更多