none
关于 strcpy 的实现 RRS feed

答案

  • strcpy的源码一般在C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\intel\strcat.asm


    是汇编写的.
    这是C代码部分
    ;       Algorithm:
    ;       char * strcpy (char * dst, char * src)
    ;       {
    ;           char * cp = dst;
    ;
    ;           while( *cp++ = *src++ )
    ;                   ;               /* Copy src over dst */
    ;           return( dst );
    ;       }
    0xBAADF00D
    • 已标记为答案 adam90 2009年12月7日 9:45
    2009年12月5日 16:49
    版主

全部回复

  • #include "stdafx.h"
    #include "stdio.h"

    void strcpy(char *p,char *q,int n)
    {
         char temp;
         int i;
         for(i=0;i<=n;i++,p++,q++)
         {
            temp=*p;
            *p=*q;
            *q=temp;
          }    
    }

    int main(int argc, char* argv[])
    {
     char a[10],b[10];
     gets(a);
     strcpy(a,b,10);
     puts(b);
     return 0;
    }

    • 已建议为答案 发烧友 2009年12月5日 14:52
    • 取消建议作为答案 adam90 2009年12月7日 9:44
    2009年12月5日 14:31
  • strcpy的源码一般在C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\intel\strcat.asm


    是汇编写的.
    这是C代码部分
    ;       Algorithm:
    ;       char * strcpy (char * dst, char * src)
    ;       {
    ;           char * cp = dst;
    ;
    ;           while( *cp++ = *src++ )
    ;                   ;               /* Copy src over dst */
    ;           return( dst );
    ;       }
    0xBAADF00D
    • 已标记为答案 adam90 2009年12月7日 9:45
    2009年12月5日 16:49
    版主
  • O(∩_∩)O谢谢

    2009年12月6日 2:34
  • 这个的返回值是个指针?
    2009年12月6日 2:37
  • 可以参考http://www.embedded.com/columns/technicalinsights/19205567?_requestid=51782
    对你的strcpy进行优化。


    麻烦把正确答案设为解答。
    2009年12月7日 1:38
    版主