下面对strcpy()用一步步优化的方法实现(10分制);
先用strcpy()库函数实现字符串之间的传输;
int main() {
char arr1[] = "&&&&&&&&&&&&&";//CR7/0都会放在arr1中所以只能打印CR7;
char arr2[] = "CR7";
strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
6分的程序(在主函数调用)
void my_strcpy(char* arr1,char* arr2) {
while(*arr1 = *arr2) {
arr1++;
arr2++;
}
}
8分程序(在主函数调用)
void my_strcpy(char* arr1,char* arr2) {//1实现strcpy()函数;
if (arr1 != NULL && arr2 != NULL) {
while(*arr1++ = *arr2++) {
;
}
}
9分程序(在主函数调用)
void my_strcpy(char* arr1, const char* arr2) {//const修饰的变量不可以被改变;
assert(arr1 != NULL);//无法该变arr2的值,保护原来数据;
assert(arr2 != NULL);
while (*arr1++ = *arr2++) {
;
}
}
10分程序(在主函数调用)
char* my_strcpy(char* arr1, const char* arr2) {
char* ret = arr1;//链式程序;//先将arr1的首地址保存起来;
assert(arr1 != NULL);
assert(arr2 != NULL);
while(*arr1++ = *arr2++) {//这会将arr1 的地址后推;
;
}
return ret;
}
大佬们!
讨论区等你们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)