编写操作系统上可执行的命令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);
}
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;
}
有啥问题啊?截图是你代码运行出来效果吗?还是期望效果?
argv数组的第一个字符串是程序名,实际的参数从第二个字符串开始。你代码是从第一个字符串开始的,错了
你需要两个参数类型分别是char[] 和char
为什么你的argc是个int