lzth.net
当前位置:首页 >> C语言关于strCAt函数使用报错的疑问。 >>

C语言关于strCAt函数使用报错的疑问。

1、strcat要求输入的两个参数均为“以\0结尾的字符串”.你给出的两个参数均不符合这个要求2、strcat的运行结果是参数1变成两个字符串的连接,并以\0结尾要求参数1的空间足够容纳连接之后的字符串并且可写入,你的参数不符合这个要求(p.s. 楼下给出的程序也不符合这个要求)没有满足它的要求就调用它,所以你的程序出错了

看报错信息啊,有很多种解决方案,1. 按照提示使用strcat_s代替strcat2. 关闭sdl检查.项目-属性-c/c++-常规-sdl检查-否3. 在文件顶部加入一行:#define _crt_secure_no_warnings4. 在文件顶部加入一行:#pragma warning(disable:4996)

虽然没over,实际已经溢出了.strcat(des,src) 不进行边界检查,所以des的大小必须得满足拼接后的字符串大小. s1[9]={"English",0,0} 后拼上 "Eng\0" 成为 "

程序是正常没什么问题的,估计是你那个平台识别不到你写的那个函数,你可以试试在main函数里面声明一下my_strcat.还有就是你定义str1长度为100,那str1+str2的长度最好不要超过100,不然str1会放不下的哦.

访问越界,因为ch1的大小只有8,而你用strcat进行连接的时候,会把ch2的内容写到ch1第8个位置以及以后的不属于ch1的内存,所以会报错误.strcat是这样定义的:extern char *strcat(char *dest,char *src);src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.

用法:#include <string.h>在C++中,则存在于<cstring>头文件中.strcat原型:extern char *strcat(char *dest,char *src);功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.说明:src和dest所指内存区域不可以重叠且

你写错了,倒数第二行应该是a[i]='\0',你赋到b上去了,所以可能有乱码.还有,你这个程序冲内存了,你定义的a数组,系统给的长度是5,而你在程序里有继续修改后面的值,这个区域已经不属于a数组的范围了,记住啊,千万不能这么玩.修改的方法是定义的时候给出足够长度:char a[20] = "I am" ;

因为第一个是个常量指针,不允许你进行操作,第二个是个数组变量,允许你进行操作.你的两种方法,无论哪一种都存在越界.

这个函数实在string.h里面,估计是没有 找到这个 函数 你把头文件这么写#include<stdio.h> #include<string.h>

因为strcat函数是不安全的.虽然数组a的长度是4,但将c连接到a的后面时,不会进行越界检查,而是直接将c追加到a的后面.这样,就会占用不属于a的内存,所以运行程序时可能出现多种情况,比如:1.程序奔溃2.表现正常3.没奔溃,但程序出现莫名其妙的现象这3种可能都有可能出现,出现2实属侥幸,说不定下次运行时就会出现情况1或3.

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com