曾经到微软求职,接受微软公司一位资深软件工程师的面试题如下: 写函数strcpy的代码。 (容易吧?! 但就这道题有80%以上的人得0分!) 有谁可以编一个让小生借鉴一下?一定给分!!

解决方案 »

  1.   

    不明白你的意思,是不是...
    void main( void )
    {
       char string[80];
       strcpy( string, "Hello world from " );
       strcat( string, "strcpy " );
       strcat( string, "and " );
       strcat( string, "strcat!" );
       printf( "String = %s\n", string );
    }
      

  2.   

    都没说清楚要求,任何情况下表现和库函数strcpy一模一样?
      

  3.   

    char * strcpy (char * dst, const char * src)
    {
          char * cp = dst;
          while( *cp++ = *src++ );            /* Copy src over dst */
          return( dst );
    }如果错了你就去找微软吧,这是从它的库里摘出来的
      

  4.   


    char *strcpy(char *strDest, const char *strSrc);
    {
        assert((strDest!=NULL) && (strSrc !=NULL));
        char *address = strDest; // 2分
        while( (*strDest++ = * strSrc++) != ‘\0’ )
           NULL ; 
        return address ;
    }摘自《高质量C++编程》
      

  5.   

    不是拉,是让你写一个函数实现strcpy一样的功能。
      

  6.   

    是自己写函数吧!
    char *strcpy(char *strD,char *strS);
    {
        ...
        int strS_length = strlen(strS);
        char *strD = new char[strS_length];
        for ( int i = 0; i < strS_lenth ; i++ )
        {
             strD[i] = strS[i];
        }
        ...
        return (strD);
        ...
    }
    大致如此
      

  7.   

    上面编的不错,但是不一定得全份,判断
    一下dst是否是NULL, scr是否是NULL,等等,还不一定的全分,还要判断地址有效吗,偶也不清楚,反正上面不怎摸容易(写到楼上的水平还不太难)
      

  8.   

    不是,他的意思是:自己用代码实现函数strcpy。
    原型:extern char *strcpy(char *dest,char *src);
    功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    char *strcpy(char *destination,const char *source)
    {
      while(*destination++=*source++)
      ;
      return(destination-1);
    }
      

  9.   


    char *strcpy(char *strDest, const char *strSrc);
    {
        assert((strDest!=NULL) && (strSrc !=NULL));
        char *address = strDest;      while( (*strDest++ = * strSrc++) != ‘\0’)
           NULL ; 
        return address ;
    }