百度笔试题9.1

题目一:

C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。

Answer1

char *revert(char * str)

{

        int n=strlen(str);

        int i=0;

        char c;

        for(i=0;i<n/2;i++)

        {

                c=str;

                str[i]=str[n-i];

                str[n-i]=c;

        }

        return str;

}

 

题目二:

C语言实现函数void * memmove(void *dest,const void *src,size_t n)memmove

函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上.

 

Answer1

http://topic.csdn.net/u/20070426/09/39b1b988-dc65-4916-8de6-ec91eef610a0.html

 

贴个VC下的源码看看:

void   *   __cdecl memmove (void*dst,   const   void   *   src,   size_t   count)

{

                void   *   ret   =   dst;

       if   (dst   <=   src   ||   (char   *)dst   > =   ((char   *)src   +   count))

  {

               /*

                *   Non-Overlapping   Buffers

              *   copy   from   lower   addresses   to   higher   addresses

               */

                                while   (count--)   {

                                                *(char   *)dst   =   *(char   *)src;

                                                dst   =   (char   *)dst   +   1;

                                                src   =   (char   *)src   +   1;

                                }

                }

                else   {

                                /*

      *   Overlapping   Buffers

     *   copy   from   higher   addresses   to   lower   addresses

       */

        dst   =   (char   *)dst   +   count   -   1;

        src   =   (char   *)src   +   count   -   1;

while   (count--)  

{

                      *(char   *)dst   =   *(char   *)src;

                       dst   =   (char   *)dst   -   1;

                       src   =   (char   *)src   -   1;

           }

}

      return(ret);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyf31

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值