「已注销」 2022-03-15 13:35 采纳率: 50%
浏览 19
已结题

下面main()函数的参数哪里出错了?

编写操作系统上可执行的命令delChar,用以实现通过操作系统命令将指定字符串中的指定字符删除。统计输出删除的字符总数,并输出删除前后的字符串(参见前面实现)。
#include<stdio.h>
void main(int argc,char *argv[])
{
int chCnt=0;
printf("原字符串为:%s",argv);
printf("请输入拟删除的字符:%c",argc);
char *p = NULL;
for (p = argv; *argv != '\0';argv++) {
*p = *argv;
if (*p != argc) p++;
else chCnt++;
}
*p = '\0';
printf("字符串中%c字符出现次数:%d\n",argc,chCnt );
printf("删除字符 %c 后字符串为:",argc);
puts(argv);
}

img

  • 写回答

3条回答 默认 最新

  • 浪客 2022-03-15 14:00
    关注

    main参数,
    int argc:参数个数
    char *argv[] : argc个字符串组成的数组。argv[0]保存运行程序路径

    #include<stdio.h>
    #include<stdlib.h>
    
    int main(int argc, char *argv[])
    {
    
        if(argc <3)
        {
            printf("参数不正确!\n");
            return 0;
        }
    
        int chCnt = 0;
        printf("原字符串为:%s\n", argv[1]);
        printf("请输入拟删除的字符:%c\n", *argv[2]);
    
        char ch = *argv[2];
        char *buf = (char *)calloc(255, sizeof(char));
        char *p = argv[1], *q = buf;
    
        while (*p)
        {
            if (*p != ch)
            {
                *q=*p;
                q++;
            }
            else 
                chCnt++;
            p++;
        }
        *q = '\0';
        printf("字符串中%c字符出现次数:%d\n", ch, chCnt );
        printf("删除字符 %c 后字符串为:%s\n",ch, buf);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: