Physicaloser 2017-02-08 14:24 采纳率: 0%
浏览 1415

关于C语言命令行参数的问题

题目要求编写一个程序读取输入,直至读到文件结尾。当命令行参数为 -u 时把输入装换成大写, 为 -l 时转化为小写,没有命令行参数时原样打印。
我的代码如下
#include
#include
#include
#define SIZE 80
#define LIM 10
int main(int argc, char * argv[])
{
int col;
int i;
int row = 0;
char str[LIM][SIZE];

while (row < LIM && fgets(str[row], SIZE, stdin) != NULL)
{
    if (!strcmp(argv[1], "-u"))
        for (col = 0; str[row][col] != '\0'; col++)
            str[row][col] = toupper(str[row][col]);
    else if (!strcmp(argv[1], "-l"))
        for (col = 0; str[row][col] != '\0'; col++)
            str[row][col] = tolower(str[row][col]);
    row++;  
}
for (i = 0; i < row; i++)
    fputs(str[i], stdout);

return 0;

}

在cmd命令行里运行时,当参数为-u -l时均正常转换。当没有参数时直接报错提示中止程序。
求教各位,多谢了!

  • 写回答

3条回答

  • threenewbee 2017-02-08 21:20
    关注

    调用argv[1]之前加上判断
    if (argc == 0) //没有参数
    {
    没有参数的逻辑
    }
    else
    {
    你之前的程序
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记