泰兴网站制作,公司做的网站费用计入什么科目,网页设计个人网站设计,一个人看的片免费高清大全面试题#xff1a;优化中的优化#xff08;10分满分#xff09;
字符串拷贝:是将一个字符串的内容复制到另一个字符串中的操作。
运用函数模拟字符串拷贝#xff1a;#xff08;5分#xff09;
模拟字符串拷贝
#include stdio.h
void my_strcpy(char* dest, c…面试题优化中的优化10分满分
字符串拷贝:是将一个字符串的内容复制到另一个字符串中的操作。
运用函数模拟字符串拷贝5分
模拟字符串拷贝
#include stdio.h
void my_strcpy(char* dest, char* str)
{while (*str ! \0){*dest *str;str;dest;}*dest *str;}
int main()
{strcpy字符串拷贝char arr1[] ##########;char arr2[] 柯南;my_strcpy(arr1, arr2);printf(%s\n, arr1);return 0;
}
对于以上代码进行优化6分
后置的使用和赋值的灵活使用让代码更加简洁
//优化模拟strcpy
#include stdio.h
void my_strcpy(char* dest,char*scr)
{while (*dest *scr)//第二个优化 {;//*dest *scr;//第一个优化}
}
int main()
{char arr1[] ##########;char arr2[] 柯南;my_strcpy(arr1, arr2);printf(%s\n, arr1);return 0;
}更加一步的优化排除野指针的优化7分
//排除NULL的使用进一步优化
#include stdio.h
void my_strcpy(char* dest, char* scr)
{if (dest ! NULL scr ! NULL){while (*dest *scr)//第二个优化{;//*dest *scr;//第一个优化}}
}
int main()
{char arr1[] ##########;char arr2[] 柯南;my_strcpy(arr1, arr2);printf(%s\n, arr1);return 0;
} assert的断言的使用进行报错的提示8分
//进行报错的提示
#include stdio.h
#include assert.h
void my_strcpy(char* dest, char* src)
{assert(dest ! NULL);assert(src ! NULL);while (*dest *src){;}
}
int main()
{char arr1[] ##########;char arr2[] 柯南;my_strcpy(arr1, arr2);printf(%s\n, arr1);return 0;
} const求改和返回值的修改(不可修改的左值)(10分)
//const求改和返回值的修改(不可修改的左值)
#include stdio.h
#include assert.h
char *my_strcpy(char* dest, const char* src)
{char* ret dest;assert(src ! NULL);assert(dest ! NULL);while (*dest *src){;}return ret;
}
int main()
{char arr1[] ##########;char arr2[] 柯南;printf(%s, my_strcpy(arr1, arr2));return 0;
}