请教如何自定义strcat,和strcat函数
请教如何自定义strcat,和strcat函数,望高手指教
----------------解决方案--------------------------------------------------------
void catstr(char *s1,char *s2)
{
while(*((s1++)+strlen(s1)))=*s2++); //用strlen()函数
}
void catstr(char *s1,char *s2)
{
while(*s1++!='\0');
while(*s1++=*s2++); //不用strlen()函数
}
没测试!不晓得对不对!
[此贴子已经被作者于2006-10-26 22:22:28编辑过]
----------------解决方案--------------------------------------------------------
是strcat和strcmp
----------------解决方案--------------------------------------------------------
void cmpstr(char *str1,char *str2) //自定义strcmp函数
{
while(*str1++=*str2++);
}
上面那个是自定义strcat的!!!
----------------解决方案--------------------------------------------------------
strcmp是通过ASCII码比较大小,我调用时候好象不对呀
----------------解决方案--------------------------------------------------------
。。。看错了!!!以为是复制
等下!!!
----------------解决方案--------------------------------------------------------
int cmpstr(char s1[],char s2[]) //这个以前写的,能通过
{
int i=0;
do
{
if((s1[i]==s2[i])&&(s1[i]))
i++;
else if((s1[i]==s2[i])&&(!s1[i]))
return 0;
else if(s1[i]>s2[i])
return 1;
else if(s1[i]<s2[i])
return -1;
}while(s1[i-1]);
}
int cmpstr(char *s1,char *s2) //这个试试!!
{
int i=0;
do
{
if((*(s1+i)==*(s2+i))&&*(s1+i))
i++;
else if(*(s1+i)==*(s2+i)&&(!*(s1+i)))
return 0;
else if(*(s1+i)>*(s2+i))
return 1;
else if(*(s1+i)<*(s2+i))
return -1;
}while(*(s1+i-1));
}
----------------解决方案--------------------------------------------------------
只是改为指针
----------------解决方案--------------------------------------------------------