分别用字符数组与字符指针作函数,用两种方法编程实现,在字符串中删除特定字符
【数组】
#include<stdio.h>
void Find(char str[],char a);
int main()
{
char str[20],ch;
printf("please input the string:\n");
gets(str);
printf("input a character:");
ch=getchar();
Find(str,ch);
printf("result:%s",str);
return 0;
}
void Find(char str[],char a)
{
int i,j=0;
for(i=0;str[i]!='\0';i++)
{
if(str[i]!=a)
{
str[j]=str[i];
j++;
}
}
str[j]='\0';//在数组j中,必须要加'\0',不然只是字符,而非字符串
}
【指针】
#include<stdio.h>
#include<stdlib.h>//新的头文件,与strcpy函数对应
void Find(char *a,char b);
int main()
{
char str[20],ch;
printf("please input the string:\n");
gets(str);
printf("input a character:");
ch=getchar();
Find(str,ch);
printf("result:%s",str);
return 0;
}
void Find(char *a,char b)
{
char str[40];
char *t=str;
strcpy(t,a);//t的容量要足够大
for(;*t!='\0';t++)//t在前面已经赋值了str的首地址,所以可以不写
{
if(*t!=b)
{
*a=*t;
a++;
}
}
*a='\0';
}