none
strcpy_s如何使用?? RRS feed

答案

全部回复

  • // crt_strcpy_s.cpp
    // This program uses strcpy_s and strcat_s
    // to build a phrase.
    //
    
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <errno.h>
    
    int main( void )
    {
      char string[80];
      // using template versions of strcpy_s and strcat_s:
      strcpy_s( string, "Hello world from " );
      strcat_s( string, "strcpy_s " );
      strcat_s( string, "and " );
      // of course we can supply the size explicitly if we want to:
      strcat_s( string, _countof(string), "strcat_s!" );
      
      printf( "String = %s\n", string );
    }




    MSDN上的例子程序

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年1月26日 4:55
    版主
  • strcpy_s 增强了 strcopy 的安全性,最明显是需要显式指定复制的长度,避免缓冲区溢出。

    用法可以参看 MSDN: (实际上就是多了一个参数,长度)

    http://msdn.microsoft.com/zh-cn/library/td1esda9(VS.80).aspx

     

    区别可以看这里:

    Security Enhancements in the CRT

    http://msdn.microsoft.com/zh-cn/library/8ef0s5kh(VS.80).aspx


    学习学习....
    2011年1月26日 5:07
  • strcpy如果你编译器设置够严格的话,会提示安全警告信息,strcpy_s更加安全!
    To Be An Excellent Coder!
    2011年1月26日 7:13
  • 没啥大区别,strcpy完全是靠'\0'这个字符来中止字符串复制的。strcpy_s多了参数,它通过多的那个参数来中止字符串复制


    0xBAADF00D
    2011年1月30日 16:11
    版主
  • thanks
    2011年6月30日 5:08
  • 可以这样用吗?

     strcpy_s( st,s);   // char st[10];  string s;
    2014年8月16日 7:52