• 解决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:终止程序,即停止运行,关闭程序;

  • 相关阅读:
    jsonp跨域请求
    Vue-cli脚手架安装
    微信小程序获取用户信息“授权失败”场景的处理
    微信小程序
    获取url参数
    [git] github 使用简单记录
    [翻译]《高级英汉翻译理论与实践》摘录
    [Java] 模板引擎 Velocity 随笔
    [Java] 垃圾回收 ( Garbage Collection ) 的步骤演示
    [Java] 垃圾回收机制 ( Garbage Collection ) 简介
  • 原文地址:https://www.cnblogs.com/luoyang0515/p/9997906.html
Copyright © 2020-2023  润新知