//删除a里 b的字符串(不是字符),如:a:abcababcbacab,b:abc;得出结果是abbacab,不是连续出现的不删除
#include<stdio.h>
#include<string.h>
char *select(char *result,char *des,char *src)
{
char *tempResult=result;//results的移标
char *record=des;//位置记录
char *tempDes=des;//des的移标
char *tempSrc=src;//src的移标
while(*tempDes) //list des
{
record=tempDes;//记录当前位置。
tempSrc=src;
if(*tempDes==*tempSrc) //如果第一个相等
{
while((*tempDes++ == *tempSrc++))//如果全部都等
{
if(*tempSrc == '\0')
record=tempDes;//移标复位
}
tempDes=record; //如果只有一部分等
}
*tempResult++=*tempDes++;//把不等的部分记录下来
}
return result;//返回新记录
}
int main(void)
{
char a[]="abcababcbacab";
char b[]="abc";
char c[50];
char *p=c;
p=select(p,a,b);
printf("%s\n",p);
return 0;
}
----------------解决方案--------------------------------------------------------
测试不行哦,有乱码
----------------解决方案--------------------------------------------------------
//删除a里 b的字符串(不是字符),如:a:abcababcbacab,b:abc;得出结果是abbacab,不是连续出现的不删除
#include<stdio.h>
#include<string.h>
char *select(char *result,char *des,char *src) //指针函数和地下的 不一致
{
char *tempResult=result;//results的移标
char *record=des;//位置记录
char *tempDes=des;//des的移标
char *tempSrc=src;//src的移标
while(*tempDes) //list des
{
record=tempDes;//记录当前位置。
tempSrc=src;
if(*tempDes==*tempSrc) //如果第一个相等
{
while((*tempDes++ == *tempSrc++))//如果全部都等
{
if(*tempSrc == '\0')
record=tempDes;//移标复位
}
tempDes=record; //如果只有一部分等
}
*tempResult++=*tempDes++;//把不等的部分记录下来
}
return result;//返回新记录
}
int main(void)
{
char a[]="abcababcbacab";
char b[]="abc";
char c[50];
char *p=c;
p=select(p,a,b);
printf("%s\n",p);
return 0;
}
如:a:abcababcbacab,b:abc;得出结果是abbacab, 这个是真确结果么?
----------------解决方案--------------------------------------------------------
数组要先赋值
----------------解决方案--------------------------------------------------------
int main(void)
{
char a[]="abcababcbacab";
char b[]="abc";
char c[50]="";
char *p=c;
p=select(p,a,b);
printf("%s\n",p);
return 0;
}
----------------解决方案--------------------------------------------------------
你们修改了之后都编译过了的么?我编译后得不到想要的答案哦,前几天发现其他组合可以的,只是不知道这个组合为什么不行,后来在最后匹配的情况下,加上'\0'才可以.因为最后匹配时没又加结束符号
[此贴子已经被作者于2007-3-19 14:38:54编辑过]
----------------解决方案--------------------------------------------------------