删除字符串中的全部指定字符(命令行参数)
问题描述:
答
#include <stdio.h>
int del(char *str,char ch)
{
int flag=0;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==ch)
{
for(int j=i;str[j]!='\0';j++)
{
str[j]=str[j+1];
}
flag=1;
i--; //第i个字符重新进入比较
}
}
return flag;
}
int main(int argc, char *argv[])
{
if(argc != 3)
{
printf("Input error,End.\n");
return 1;
}
char *str=argv[1];
char ch=argv[2][0];
int flag=del(str,ch);
if(!flag)
{
printf("The string dose not cantain character %c\n",ch);
return -1;
}
printf("%s\n",str);
return 0;
}
答
代码如下:
#include <stdio.h>
int fun(char* s,char c)
{
int flag = 0;
char *t;
while(*s != '\0')
{
if(*s == c)
{
flag =1;
t = s;
while(*t != '\0')
{
*t = *(t+1);
t++;
}
t--;
*t = '\0';
}else
s++;
}
return flag;
}
int main()
{
char buf[100]={0},c;
int index = 0;
int isvalid = 0;
gets(buf);
while(buf[index] != '\0')
{
if(buf[index] == ' ' && buf[index+1] != '\0')
{
isvalid = 1;
c = buf[index+1];
buf[index] = '\0';
break;
}
index++;
}
if(!isvalid )
{
printf("input eror,end\n");
return 0;
}
if(fun(buf,c))
printf("%s\n",buf);
else
printf("The string does not contain character '%c'\n",c);
return 0;
}