zoukankan      html  css  js  c++  java
  • 解决strcmp的错误以及VS的快捷键

    主要是C++数组作业中发现的一些问题。

    第一点是关于strcat函数

    我用VS2018调用strcat的时候报错,错误信息提示strcat不安全(?)要用strcat_s。修改后,可成功运行。

    但这两个函数有啥区别?查询后发现他们区别如下:

    stract_s是VS2005及以后新增的具有更强"安全性"CRT函数。举个例子:

    char a[3]={0};

    1> strcat_s(a,"abcde"); 或 strcat_s(a,3,"abcde");

    2> strcat(a,"abcde");

    显然存在缓冲区溢出的问题。

    用第一个函数,它会抛出一个异常。

    但使用第二个函数的结果则不能确定,因为它可能会错误地改变了程序中其他部分的内存的数据,有可能不会抛出异常,但会导致程序数据错误。也可能由于非法内存访问抛出异常

    总之,他们是相同功能的函数,不过前者更新,安全性更强。

    第二点是函数strcmp。

    我一开始用strcmp比较两个字符数组的时候怎么比都是-1,我甚至都把数组a一对一赋值给b了,明明是完全一样的数组啊!折腾了好久好久好久后发现,strcmp比较的是两个字符串。

    用输入给a赋值的时候系统会自动在后面补‘’,因此数组a可以作为字符串使用。但是一对一赋值给b的时候不会把‘’赋值,于是数组b没有‘’,不能作为字符串,因此总是出错。

    所以我在给b赋值完后加入了

    b[n] = '';

    来解决上述问题。

    自闭了。

    最后一点是VS快捷键了。

    不同编译器有着不同的快捷键,这已经很难受了,这VS还要按两下。这里举例一些有用的快捷键,不定期更新。

    ps.  VusialBasic  2018  Community

    1.ctrl+k, ctrl+c:选中行注释;

    2.ctrl+k, ctrl+u:选中行取消注释;

    3.ctrl+k, ctrl+f:选中行代码格式化;

    4.break(一般在delete边上):中止程序,可不关闭程序的情况下停止程序的运行;

    5.ctrl+break:终止程序,即停止运行,关闭程序;

  • 相关阅读:
    iOS开发数据库篇—SQLite的应用
    iOS开发数据库篇—SQL代码应用示例
    iOS开发数据库篇—SQL
    iOS开发数据库篇—SQLite简单介绍
    iOS开发网络篇—NSURLConnection基本使用
    iOS开发网络篇—数据安全
    iOS开发网络篇—GET请求和POST请求
    WordPress主题开发:开启文章缩略图功能
    WordPress主题开发:开启feed功能
    WordPress主题开发:循环代码
  • 原文地址:https://www.cnblogs.com/luoyang0515/p/9997906.html
Copyright © 2011-2022 走看看