GCC版本:
gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
void strncpy(register char *s,register char *t,register size_t n){
register char *st=t;
//从t头部数到t+n的位置
while(t!=st+n){
//如果t的长度小于n,则提前结束了
if(!(*s++=*t)){
return;
}
t++;
}
*s='\0';
}
void strncat(register char *s,register char *t,register size_t n){
//找到s最后的位置
while(*++s!='\0');
//将t的内容接到s的后面
register char *st=t;
//从t头部数到t+n的位置
while(t!=st+n){
//如果t的长度小于n,则提前结束了
if(!(*s++=*t)){
return;
}
t++;
}
*s='\0';
}
int strncmp(register char *s,register char *t,register size_t n){
register char *st=t;
for(;*s==*t && t!=st+n;s++,t++){
if(*s=='\0'){
return 0;
}
}
return t==st+n ? 0:*s-*t;
}