实现库函数strncpy,strncat,strncmp
char *liw_strncpy(char *s, const char *ct, size_t n) {
char *p;
p = s;
for (; n > 0 && *ct != '\0'; --n)
*p++ = *ct++;
for (; n > 0; --n)
*p++ = '\0';
return s;
}
char *liw_strncat(char *s, const char *ct, size_t n) {
char *p;
p = s;
while (*p != '\0')
++p;
for (; n > 0 && *ct != '\0'; --n)
*p++ = *ct++;
*p = '\0';
return s;
}
int liw_strncmp(const char *cs, const char *ct, size_t n) {
while (n > 0 && *cs == *ct && *cs != '\0') {
++cs;
++ct;
--n;
}
if (n == 0 || *cs == *ct)
return 0;
if (*(unsigned char *) cs < *(unsigned char *) ct)
return -1;
return 1;
}