C语言中处理字符串的各种自定义函数
关于strcpy,strcmp,strcat,strlen的自定义函数,它是为了避免调用库函数对代码兼容的局限性。要注意如下一些问题:
1.检查输入的两个指针是否有效;
2.检查两个字符串是否以NULL结尾;
3.检查目标指针的空间是否大于等于原字符串的空间。
一.strcpy自定义
char * sef_strcpy(char *str1,char *str2)
{
  If( (NULL==str1)||(NULL==str2))
{
printf(“invalid argument(s)”);
return;
}
char *strcopy=str1;
while(‘\0’!= *str1++=*str2++)
;
*str1=’\0’;
return strcopy;
}
二.strcmp的自定义
int  sef_strcpy(char *str1,char *str2)
{
  If( (NULL==str1)||(NULL==str2))
{
printf(“输入参数错误,值为NULL!\n”);
return -1;
}
while(*str1&&*str2&&( *str1++==*str2++))
;
自定义函数怎么用c语言return str1-str2;
}
三.strcat的自定义
  char * sef_strcat(char *str1,char *str2)
{
  If( (NULL==str1)||(NULL==str2))
{
printf(“输入参数错误!”);
return;
}
char *strcopy=str1;
while(‘\0’!=*str1)
百度文库 - 让每个人平等地提升自我{str++;}
while(‘\0’!= (*str1++=*str2++))
;
*str1=’\0’;
return strcopy;
}
四.strlen的自定义函数
int sef_strlen(char *str)
{
if(NULL==str)
{ printf(“输入参数错误,值为NULL!”);
char *p=str;
while(‘\0’!=*str++)
;
return str-p-1;
}
注意点:对于指针变量P,其值可以任意改变。在分配了一定内存空间后,假如P的值发生改变,此时再释放P的内存空间,将会使程序产生崩溃性错误。所以在P值为改变之前要先定义一个指针变量保存P的初值。
 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。