解决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赋值的时候系统会自动在后面补‘\0’,因此数组a可以作为字符串使用。但是一对一赋值给b的时候不会把‘\0’赋值,于是数组b没有‘\0’,不能作为字符串,因此总是出错。
所以我在给b赋值完后加入了
b[n] = '\0';
来解决上述问题。
自闭了。
最后一点是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:终止程序,即停止运行,关闭程序;
解决strcmp的错误以及VS的快捷键的更多相关文章
- 解决mybatis foreach 错误: Parameter '__frch_item_0' not found
解决mybatis foreach 错误: Parameter '__frch_item_0' not found 在遍历对象的属性(是ArrayList对象)时报错: org.mybatis.spr ...
- 解决WordPress设置错误的url网站不能访问的问题
通过WordPress后台首选项更改了网站url地址之后,网站就会出现访问不了的情况,一般来说,网站后台也登陆不上去了,我从网上寻找到了四种方法,这四种方法前三种都是需要登陆到后台的,但实际上出错后, ...
- NPM全局安装软件包时解决EACCES权限错误
NPM全局安装软件包时解决EACCES权限错误 Resolving EACCES permissions errors when installing packages globally npm WA ...
- 如何解决iOS内存错误
由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能.我们都需要自己管理和控制对象的回收,这是一件很麻烦的事情,也是做iOS项目中最容易出现的问题.如果不掌握这些方法,调试这些问 ...
- 解决python编码格式错误问题
一:前言 遇到问题:print输入汉字时提示错误信息 UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: o ...
- 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...
- 破解LR时,解决loadrunner 破解错误:license security violation.Operation is not allowed
一.由于在压力测试执行中,出现一个-10803的错误 ,为解决这个错误,重新设置的环境变量,在次执行错误,这个问题解决了,但另外一个问题出来了,LR,打开脚本编辑器老提示找不到TEMP目录,当时没有想 ...
- 解决ntp的错误 no server suitable for synchronization found
当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个: 错误1.Server dropped: ...
- 解决grub引导错误的一次经历
我的电脑上一共是两块硬盘,1块固态硬盘(sda)装了win7,另外一块普通硬盘(sdb)装了ubuntu和centos两个系统,系统启动的引导是装在sdb上面的ubuntu的grub2,它负责选择不同 ...
随机推荐
- ubuntu1604使用之旅——启动ssh系列
---恢复内容开始--- 1.安装ssh的client和server: sudo apt-get install openssh-server openssh-client 2.然后就要安装key: ...
- js的预解析详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 关于Java的特点之继承
继承--解决之道 继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类(比如刚才的Student),在父类中定义这些相同的属性和方法,所 ...
- JVM虚拟机 YGC和FGC发生的具体场景
1.YGC和FGC是什么 YGC :对新生代堆进行gc.频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收.性能耗费较小. FGC :全堆范围的gc.默认堆空间使用到达80%(可调整)的时候会 ...
- MVC5 Api Area 区域
到Area区分不同的模块让项目结构更加的清晰 TODO 步骤如下: 项目 –> 添加 -> 区域 (Area) 添加路由规则 public static class WebApiConfi ...
- ionic3 自定义组件 滑动选择器 ion-multi-picker
1.ionic3中有一个 ion-datatime 给大家选择时间提供了一个很方便的组件 效果如图 链接 https://ionicframework.com/docs/api/component ...
- oh_my_zsh
oh_my_zsh zsh默认已经安装 cat /etc/shells 查看安装没有 (https://xiaozhou.net/learn-the-command-line-iterm ...
- 解决启动vs2010 未能找到自动配置的设置文件
今天室友把固态拆掉,重新安上.打开vs2010出现 打开项目,出现 找了许多方法都无效. 发现c:user\Administer\documents\下,vs2010 .vs webset 那些文件点 ...
- 1.Python
一.Python基础:1.第一句python文件后缀名:文件后缀名是.py2.两种执行方式:(1)把文件地址交给python解释器,python解释器去找到这个文件读到内存执行(2)进入解释器:解释器 ...
- java程序连接oracle12c报:java.sql.SQLException: ORA-28040: 没有匹配的验证协议。
报错信息: 2017-09-22 15:17:37,204 WARN [org.hibernate.cfg.SettingsFactory] - Could not obtain connection ...