模拟实现strncpy:
循环遍历目标字符串,循环截至到n结束
模拟实现strncat:
先循环,让目标数组走到‘\0’结束位置,然后循环遍历,到n结束,向目标数组的j位置添加源字符串中字符
模拟实现strcmp
遍历目标数组,一旦出现目标字符串当前字符小于源字符串当前位置字符时,返回-1否则返回1,循环结束则返回0
#include<stdio.h>
#include<Windows.h>
#include<string.h>
char my_strncoy(char* dest, const char* src, int n){
if (n > strlen(dest)){
return NULL;
}
for (int i = 0; i < n; i++){
dest[i] = src[i];
if (dest[i] == '\0'){
return *dest;
}
}
return *dest;
}
char my_strncat(char* dest, const char* src, int n){
char *ret = dest;
while (*dest){
dest++;
}
for (int j = 0; j < n; j++){
*dest++ = *src++;
}
*dest++ = '\0';
return ret;
}
int my_strcmp(const char* dest, const char* src){
while (*dest){
if (*dest++ < *src++)
return -1;
else
return 1;
}
return 0;
}
int main(){
char a[] = "abcdefg";
char b[] = "ABCDEFG";
printf("%d",my_strcmp(a, b));
my_strncat(a, b, 3);
printf("%s", a);
system("pause");
return 0;
}