字符串函数的实现

来源:互联网 发布:ipad安装下载软件 编辑:程序博客网 时间:2024/05/23 23:53

之前在实习生招聘的面试过程中被问到了关于strcpy函数实现的问题,现在总结一下字符串的相关处理函数!

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
char *strcpy(char * s1,char *s2)
{
assert((s1!=NULL)&&(s2!=NULL));
char *addr=s1;
while((*s1++=*s2++)!='\0')
NULL;
return addr;
}
char *strcat(char *str1, char *str2)  
{  
   assert((str1!=NULL)&&(str2!=NULL)); 
    char *pt = str1;  
    while(*str1!='\0') str1++;  
    while(*str2!='\0') *str1++ = *str2++;  
    *str1 = '\0';  
    return pt;  
}  
  
void main()  
{  
    char a[]= "goodstudy";  
    char b[]= "nihao";  
    char c[10]="abcde";
    char *cat = strcat(a,b);  
    char *d=strcpy(c,b);
    printf("%s\n",cat); 
    printf("%s\n",d);
   system("pause");
}

其中while((*s1++=*s2++)!='\0')    NULL;这个判断句只有当*s1=‘\0’才会退出循环;这一句等价于 while(*s1!='\0') *s1++ = *s2++;   *s1 = '\0';  


0 0
原创粉丝点击