在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
很多公司的面试官在面试程序员的时候,要求应聘者写出库函数strcpy()的工作方式或者叫实现,很多人以为这个题目很简单,实则不然,别看这么一个小小的函数,它可以从三个方面来考查: (1)编程风格 (2)出错处理 (3)算法复杂度分析(用于提高性能) 最好的写法如下: 代码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <assert.h> 4 5 //链式访问 6 char * my_strcpy(char *dest, const char *src) 7 {//将源字符串加const,表明其为输入参数,起到相应的保护作用 8 assert(src != NULL&&dest != NULL);//对源地址和目的地址加非0断言 9 char *ret = dest; 10 while ((*dest++ = *src++)) 11 ; 12 return ret;//引用返回地址,方便链式操作!! 13 } 14 15 int main() 16 { 17 char *p = "bit-tech"; 18 char arr[20]; 19 //strcpy(arr,p); 20 printf("%s\n", my_strcpy(arr, p)); 21 system("pause"); 22 return 0; 23 } 同样写出strlen函数: 1 int strlen( const char *str ) //输入参数const 2 3 { 4 assert( strt != NULL ); //断言字符串地址非0 5 int len; 6 while( (*str++) != '' ) 7 { 8 len++; 9 } 10 return len; 11 } 上面是一篇博客上的两种写法:但都用到了一个人函数 assert函数用于判断可能出的错误是否发生,如果发生程序终止执行;不发生着正常执行。函数在有可能出错的地方测试一个条件。当条件成立时,表示发生错误。 语法:void asscrt(int test); asserr()函数的语法参数说明如下: 参数test为测试表达式。 asserr()函数没有返回值。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论