1.三種方式模擬實現strlen函式。
方法1:用計數器模擬實現
#define _crt_secure_no_warnings
#include
#include
#include
#include
int mystrlen( char* str)
return ret;
}int main()
;printf("請輸入字串\n");
scanf("%s", arr);
printf("%s的長度是%d\n", arr, mystrlen(arr));
system("pause");
return 0;
}方法2:用函式遞迴的方法模擬實現
#define _crt_secure_no_warnings
#include
#include
#include
#include
int my_strlen( char* str)
else
return 1 + my_strlen(str+1);
}int main()
;printf("請輸入字串\n");
scanf("%s", arr);
printf("%s的長度是%d\n", arr, my_strlen(arr));
system("pause");
return 0;}
//方法3:用指標減指標的方法模擬實現
#define _crt_secure_no_warnings
#include
#include
#include
#include
int my_strlen(char* str)
return str - p;
}int main()
;printf("請輸入字串\n");
scanf("%s", arr);
printf("%s的長度是%d\n", arr, my_strlen(arr));
system("pause");
return 0;
}2.模擬實現strcpy
//方法1:
#include
#include
#include
#include
char* mystrcpy(char* dest,const char* src)
return ret;
}int main()
//方法2
#include
#include
#include
#include
char *mystrncpy(char *dest, const char* src, size_t n)//將src中n個字元拷貝到dest
if (*(dest - 1) != '\0')//判斷是否已經將『\0』複製到目標字串中
*dest = '\0'; //若沒有則給目標字串最後新增『\0』
return ret;
}int main()
////方法3:
#include
#include
#include
#include
char* mystrcpy(char* dest, const char* src)
*dest ='\0';
//給目標字串最後新增『\0』
return ret;
}int main()
3.模擬實現strcat
#define _crt_secure_no_warnings 1
#include
#include
#include
#include
char* mystrcat(char* str1, char* str2)
while (*str1++ =*str2++)
return ret;
}int main()
;char arr2 = "fgh";
printf("%s\n", mystrcat(arr1, arr2));
system("pause");
return 0;}
4.模擬實現strcmp
//方法1:
#define _crt_secure_no_warnings 1
#include
#include
#include
int mystrcmp(const char* str1,const char* str2)
str1++;
str2++;
}if ((*str1 == '\0'&&*str2 != '\0') || (*str1 != '\0'&&*str2 == '\0'))
else
return 0;
}int main()
else if (ret > 0)
else
system("pause");
return 0;}
方法2:
#define _crt_secure_no_warnings 1
#include
#include
#include
int my_strcmp(const char* str1, const char* str2)
if (ret < 0)
else if (ret<0)
return ret;
}int main()
else if (ret ==1)
else
system("pause");
return 0;}
5.模擬實現strstr
#define _crt_secure_no_warnings 1
#include
#include
#include
#include
char * my_strstr(const char * str1, const char *str2)
while (*cp)
if (*substr == '\0')
cp++;
}return null;
}int main()
else
system("pause");
return 0;}
6.模擬實現memcpy
#define _crt_secure_no_warnings
#include
#include
#include
#include
void* my_memcpy(void* dest, const void* src, size_t count)
return ret;
}int main()
;int str2 = ;
char* p = (char*)my_memcpy(str2, str1, 5);
for (int i = 0; i < sizeof(str1) / sizeof(str1[0]); i++)
printf("\n");
system("pause");
return 0;}
7.模擬實現memmove
#define _crt_secure_no_warnings
#include
#include
#include
#include
void * my_memove(void* dest, void* src, size_t count)
}else //從後向前拷貝
}return ret;
}int main()
;char arr1 = "abcdefgh";
int i = 0;
int sz = sizeof(arr1) / sizeof(arr1[0]);
//my_memove(arr1 + 2, arr1 + 1, 4 * sizeof(int));
my_memove(arr1 + 2, arr1 + 1, 4 * sizeof(char));
printf("%s", arr1);
/*for (i = 0; i*/
printf("\n");
system("pause");
return 0;
}
模擬實現字串庫函式
1.strcat 1 函式功能 實現兩個字串的連線 2 思想 首先遍歷目標字串,找到 0 的位址,然後將資源字串通過指標一次一次的拼接在目標字串後面,直到指標走到資源字串的 0 3 char mystrcat char strdestination,const char strsource whil...
模擬實現字串查詢函式strstr
題目 不使用庫函式,模擬實現字串查詢函式strstr的功能。例如 在字串dest abcdefg 中查詢字串src bcd 是否存在,如存在返回 bcd 在 abcdefg 中的起始位置,即 bcdefg 若不存在,則返回null。分析 1.首先定義乙個慢指標slow遍歷dest字串,初始指向des...
模擬實現字串比較函式 strcmp
題目 不使用庫函式,模擬實現字串比較函式strcmp。例如 比較 abcde bc 和 bcde bcde 和 abcd ab 分析 字串在進行比較時,逐個字元進行比較其ascii碼值。字串1大於字串2,返回1,小於,返回 1,等於返回0.當兩字串所有字元的ascii碼值相等且字元個數相等時,兩字串...