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

关于字符串的编程题真的是太常见了,而且是非常吸引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;
           }
  • 分析:
    其实上面两段代码是很简洁的,也很美观。需要注意的点:

    1. 返回值是char*
    2. src的修饰是const,这点尤其重要,很考察个人的C++功底
    3. 添加'\0'
    4. size_t的使用
  • size_t的解释:
    size_t是定义在cstddef文件中,是一个与机器相关的unsigned类型。32系统中是 unsigned int,64位系统中则是 long unsigned int

你可能感兴趣的:(编程语言,c++)