输入一个字符串,再输入一个删除字符,保留第一个删除字符,删除后面相同的删除字符,输出删除后的字符串。
例如:输入helllloo,输出heloo
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void delete_str(char *p,char *q,char str)
{
int num = 0; //定义一个中间变量
for(p ; *p != '\0';p++)
{
if(*p == str && num == 0) //遇到第一个删除字符就p指针移到下一位
{
p = p+1;
*q = *p;
q = q+1;
num = 1;
}
else if(*p != str)
{
*(q++) = *p;
}
}
*(q-1) = '\0'; //删除从键盘上敲的回车符
}
void delete_str(char *p,char *q,char str); //申明函数
int main(int argc,char *argv[])
{
char a[20] = {0};
char b[20] = {0};
char *p = a,*q = b;
char str;
printf("请输入字符串\n");
fgets(a,sizeof(a),stdin); //从键盘上输入字符
printf("你想要删除的字符\n");
scanf("%c",&str);
getchar(); //吃掉垃圾字符
delete_str(a,b,str);
printf("删除字符后的字符串为\n");
puts(b);
return 0;
}
结果如下: