c++面试题字符串拷贝函数示例

 更新时间:2013年12月25日 11:08:33   作者:  
这个也算是企业招工里面比较常见的一道笔试面试题了,非常简单。个人觉得考的主要是对指针使用的熟练程度,还有对字符串类内部原理的掌握程度

复制代码 代码如下:

#include<iostream>
using namespace std;

//字符串拷贝函数
char * sCpy(char *strDest, char *strSource)
{
    _ASSERT((strDest != NULL) && (strSource!=NULL));
    char *d = strDest;              //获取dest的当前位置
    char *s = strSource;            //获取source的当前位置
    while ((*d++ = *s++) != '\0')   //未到最后一位,作循环
    {
    }
    *d = '\0';                      //补充最后一位
    return strDest;
}

int main()
{
    char *strSource = "hello,world";
    char *strDest = new char[strlen(strSource)+1];      //注意,strlen函数的返回长度是不包括'\0'的,所以要加1
    _ASSERT(strDest != NULL);
    char *strReturn = sCpy(strDest,strSource);
    cout<<"形参返回值"<<strDest<<endl;
    cout<<"函数返回值"<<strReturn<<endl;

    //不作释放操作也应该是没问题的,主线程退出后系统会回收资源
    delete strSource,strDest,strReturn;
    strSource = strDest = strReturn = NULL;
    return 0;
}

strcpy(str1,str2)函数能够将str2中的内容复制到str1中,为什么还需要函数返回值?应该是方便实现链式表达式,比如:

int i_length = strlen(strcpy(str1,str2));

相关文章

  • 详解数据结构C语言实现之循环队列

    详解数据结构C语言实现之循环队列

    在我们生活中有很多队列的影子,可以说与时间相关的问题,一般都会涉及到队列问题;本文详细介绍了如何使用C语言实现循环队列,下面一起来看看。
    2016-07-07
  • VC++植物大战僵尸中文版修改器实现代码

    VC++植物大战僵尸中文版修改器实现代码

    这篇文章主要介绍了VC++植物大战僵尸中文版修改器实现代码,可实现植物大战僵尸中的无限阳光与无冷却时间功能,需要的朋友可以参考下
    2015-04-04
  • QT利用QPdfWriter实现绘制PDF(支持表单输出)

    QT利用QPdfWriter实现绘制PDF(支持表单输出)

    这篇文章主要为大家详细介绍了QT如何利用QPdfWriter实现绘制PDF,并可以支持表单输出。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • C++ STL入门教程(6) set(集合)的使用方法

    C++ STL入门教程(6) set(集合)的使用方法

    这篇文章主要为大家详细介绍了C++ STL入门教程的第六篇,set集合的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • C语言操作符基础知识详解

    C语言操作符基础知识详解

    这篇文章主要以图文结合的方式为大家详细介绍了C语言位运算基础知识,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-10-10
  • C语言数据结构之循环链表的简单实例

    C语言数据结构之循环链表的简单实例

    这篇文章主要介绍了C语言数据结构之循环链表的简单实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • C语言异常处理机制案例讲解

    C语言异常处理机制案例讲解

    这篇文章主要介绍了C语言异常处理机制案例讲解,本文讲解了异常处理机制所用的函数和具体的代码实现等,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 在C语言里单引号和双引号的区别

    在C语言里单引号和双引号的区别

    这篇文章主要介绍了在C语言里单引号和双引号的区别,本文通过代码的实例和注释的详细的说明了单引号和双引号的概念与区别,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言全方位讲解指针与地址和数组函数堆空间的关系

    C语言全方位讲解指针与地址和数组函数堆空间的关系

    指针是C语言中一个非常重要的概念,也是C语言的特色之一。使用指针可以对复杂数据进行处理,能对计算机的内存分配进行控制,在函数调用中使用指针还可以返回多个值
    2022-04-04
  • C语言应用领域分析

    C语言应用领域分析

    在本篇文章里小编给各位分享的是关于C语言应用领域分析内容,有兴趣的朋友们可以学习下。
    2020-03-03

最新评论