一、strlen函数。
int strlen(const char* str){
assert(str!=NULL);
int len = 0;
while((*str++)!='\0')
len++;
return len;
}
//无中间变量
int strlen1(const char* str){
assert(str!=NULL);
return *str=='\0'? 0: 1+strlen1(++str);
}
二、strcmp函数。
int strcmp(const char* str1, const char* str2){
assert(str1!=NULL && str2!=NULL);
int cmp = 0;
while(!(cmp=*(unsigned int *)str1 - *(unsigned int *)str2) && *str1!='\0'){
++str1;
++str2;
}
if(cmp>0)
return 1;
else if(cmp<0)
return -1;
else
return 0;
}
三、strcat函数
char *strcat(char *strDest, const char *strSrc){
char *address = strDest;
assert((strDest!=NULL) && (strSrc!=NULL));
while(*strDest!='\0')
++strDest;
while((*strDest++=*strSrc++)!='\0');
return address;
}
四、strcpy函数
char *strcpy(char *strDest, const char *strSrc){
assert(strDest!=NULL && strSrc!=NULL);
char *address = strDest;
while((*strDest++=*strSrc++)!='\0');
return address;
}