实现strncat,strncmp函数
1.strncat:拼接n个字符,要是第二个字符串长度小于n,那就拼接完直接在后边加\0。同时还要保证第一个字符串长度足够+n。
char* my_Strncat(char* destination, const char* source, size_t num) {
if (destination == NULL || source == NULL) {
return NULL;
}
int cur = 0;
while (destination[cur] != '\0') {
cur++;
}
size_t i = 0;
while ( i < num && source!='\0') {
destination[cur + i] = source[i];
i++;
}
destination[cur + i] = '\0';
return destination;
}
2.strncmp:字符串比较函数,比较n个字符。str1<str2返回-1,否则返回1,相等返回0。
int my_Strncmp(const char* str1, const char* str2, size_t num) {
assert(str1 != NULL && str2 != NULL);
while (*str1 != '\0' && *str2 != '\0'&& 1 < num) {
if (*str1 > *str2) {
return 1;
}
else if (*str1 < *str2) {
return -1;
}
else {
str1++;
str2++;
num--;
}
}//出while循环代表起码有一个字符串遇到‘\0’了
if (*str1 > * str2) {
return 1;
}
else if (*str1 < *str2) {
return -1;
}
else {
return 0;
}
}