您的位置:首页 > 职场人生

BAT技术面试最喜欢考的两个编程题

2015-04-09 21:42 162 查看
关于字符串的编程题真的是太常见了,而且是非常吸引BAT等公司IT技术面试官。这类题目一般都是不难的,核心代码都是非常简单,但是需要注意的细节是太多了,而这也正是考察了面试者的技术功底。关于字符串的考题,常见的有strncpy, strncat等等。

strncpy


代码来自Linux Manual手册 (在linux终端输入 man strncpy 就可以看到了)

char *
strncpy(char *dest, const char *src, size_t n)
{
size_t i;

for (i = 0; i < n && src[i] != '\0'; i++)
dest[i] = src[i];
for ( ; i < n; i++)
dest[i] = '\0';

return dest;
}


strncat


char*
strncat(char *dest, const char *src, size_t n)
{
size_t dest_len = strlen(dest);
size_t i;

for (i = 0 ; i < n && src[i] != '\0' ; i++)
dest[dest_len + i] = src[i];
dest[dest_len + i] = '\0';

return dest;
}


分析:

其实上面两段代码是很简洁的,也很美观。需要注意的点:

返回值是
char*


src
的修饰是
const
,这点尤其重要,很考察个人的
C++
功底

添加
'\0'


size_t
的使用

size_t
的解释:

size_t
是定义在
cstddef
文件中,是一个与机器相关的
unsigned
类型。32系统中是
unsigned int
,64位系统中则是
long unsigned int
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: