股票绿十字星:请帮忙学C的编一下这题

来源:百度文库 编辑:中科新闻网 时间:2024/05/08 11:18:46
编写一个函数fun(),其功能是删除一个字符串指定的字符。要求原始字符串在主函数中输入,处理后的字符串在主函数中输出。如有一字符串为“I am a teacher,you are a student.”,欲将该串中的所有字符“e”删除,则删除后的字符串为“I am a tachr,youbar a studnt.”

#include<stdio.h>

void fun(char* str2);
char str3[100];

main()
{
char str[100];
gets(str);
fun(str);
printf("%s", str3);
printf("\n");
}

void fun(char *str2)
{
int i,j=0;

for(i=0; i<100; i++,j++)
{
if(str2[j] != 'e')
str3[i] = str2[j];
else
i--;
}
}

char* fun(char* str, char c)
{
int i=0;
while(str[i])
{
if(str[i] == c)
{
str[i] = 0;
strcat(str,&str[i+1]);
}
}
return str;
}

Easy,设双指针,char *p1,*p2;若p2不等于e就复制到p1,然后p1++,p2++。若p2等于e,不复制,p2++。最后p1++;p2='\0'。新的字符串就在p1中了。空间使用最低的算法。效率也很高

这个题 我考过二级哦
简单得很