当前位置: 代码迷 >> 综合 >> 字符串操作函数实现strcpy() strcmp()...
  详细解决方案

字符串操作函数实现strcpy() strcmp()...

热度:25   发布时间:2023-11-30 16:25:25.0
strcpy()    复制字符串
char* my_strcpy(char* str1, const char* str2)
{char* ret = str1;assert(str1 != NULL);assert(src != NULL);while ((*str1++ = *str2++) != '\0'){;}return ret;
}

strcat()  添加字符串

char* my_strcat(char *str1, char *str2)
{char* ret = str1;assert(dest != NULL);assert(src != NULL);while (*str1 != '\0') str1++;while (*str2 != '\0') *str1++ = *str2++;*str1 = '\0';return ret;
}
strcmp()  字符串比较

int strcmp(const char *str1, const char *str2)
{assert(str1 != NULL);assert(str2 != NULL);while ((*str1 == *str2) && (*str1 != '\0')){str1++;str2++;}return *str1 - *str2;
}

strlen()  字符串求长度

int my_strlen(const char*str)
{int count = 0;assert(str != NULL);while (*str++ != '\0'){count++;}return count;
}


strncpy()  复制指定长度字符串

char* my_strncpy(char* dest, const char* src, int len){assert(dest);assert(src);char* temp = dest;int i = 0;while (i++ < len && (*temp++ = *src++) != '\0'){}return dest;
}


strncmp()  比较指定长度字符串

int my_strncmp(const char *s1, const char *s2, int n)
{assert(s1);assert(s2);while (*s1 != '\0'&&*s2 != '\0'&&n){if (*s1 - *s2>0)return 1;if (*s1 - *s2<0)return -1;s1++;s2++;n--;}if (*s1 == '\0'&&*s2 != '\0')return -1;if (*s2 == '\0'&&*s1 != '\0')return 1;return 0;         
}

strncat()  添加指定长度字符串

char *my_strncat(char *dest, const char *str, int n)
{assert(dest);assert(str);char *cp = dest;while (*++cp != '\0'){}while (--n && (*cp++ = *str++) != '\0'){}return dest;
}



  相关解决方案