#include <stdio.h> #include <stdlib.h> #include <assert.h> /* mystrcpy: 复制字符串from 中的字符到字符串to, 包括空值结束符。 */ /* mystrcmp: 比较字符串str1 and str2 返回值 解释 less than 0 str1 is less than str2 equal to 0 str1 is equal to str2 greater than 0 str1 is greater than str2 */ /* mystrcat: 函数将字符串str2 连接到str1的末端 */ /* mystrlen: 函数返回字符串str 的长度( 即空值结束符之前字符数目)。 */ void mystrcpy(char *to, const char *from); int mystrcmp(const char *str1, const char *str2); void mystrcat(char *str1, const char *str2); size_t mystrlen(char *str); int main(){ char str1[20] = "abcdfg"; char str2[] = "abcde"; //mystrcat(str1,str2); //mystrcpy(str1,str2); printf("%d\n",mystrlen(str1)); system("pause"); return 0; } void mystrcpy(char *to, const char *from){ assert((to != NULL) && (from != NULL)); while ((*to++ = *from++) != ‘\0‘); *to = ‘\0‘; } int mystrcmp(const char *str1, const char *str2){ assert((str1 != NULL) && (str2 != NULL)); for (; (*str1) && (*str2) && (*str1 == *str2);++ str1,++ str2); return (*str1 - *str2); } void mystrcat(char *str1, const char *str2){ assert((str1!=NULL) && (str2!=NULL)); char* ret = str1; for (; *str1 != ‘\0‘; ++str1); while ((*str1++ = *str2++) != ‘\0‘); } size_t mystrlen(char *str){ assert(str != NULL); size_t length = 0; for (; *str++ != ‘\0‘;length ++); return length; }
时间: 2024-11-09 12:12:27