当前位置: 代码迷 >> C语言 >> 请教如何自定义strcat,和strcat函数
  详细解决方案

请教如何自定义strcat,和strcat函数

热度:252   发布时间:2006-10-26 21:31:51.0
请教如何自定义strcat,和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));
}

----------------解决方案--------------------------------------------------------
只是改为指针
----------------解决方案--------------------------------------------------------