strcpy如果后一个比前一个长(strcpy如果后一个比前一个短)
字符串复制函数strcpy 被拷贝字符串str2如果小于str1字符串长度 输出结果?
extern char *strcpy(char* dest, const char *src);
如果dest比src短,不会有提示,可能会引起问题,得靠程序员自己掌握。
长短有三个意义,一个是定义长度,如char a[200];里面的200;一个是实际长度,比如a里面只有“1234\0”,实际长度是5;还有一个是字符串长度,不包括最后的'\0',是4;
只要src的实际长度,不大于dest的定义长度,不会出现问题。
为了防止出现问题,最好将dest与src对应的实参字符串的长度定义得相同。
如果dest比src长,没有问题,复制时会把字符串结束符'\0'也复制过去。

strcpy中前一个字符串长于后一个字符串,那么结果是什么 如strcpy(basic,java)
strcpy(char* a, const char *b),是将b地址开始的字符串复制到a的地址空间,你应该是说strcpy("java","basic")吧,运行结果应该是程序崩溃
strcpy中如果第一个字符串数组比第二个长 什么结果
不用strcpy的知道voidstr_test(char*source,char*target){while(*source!='\0'){*target=*source;target++;source++;if(*source=='\0')break;source++;}*target='\0';}
C语言中,用strcpy函数时,源字符串比目标字符串长怎么办?
一定得处理容易出现core的错误。
strcpy之前判断一下。长了就抛弃!
再不行就用动态方式。
char *pszdst;
pszdst = (char*)malloc(strlen(src) + 1);
strcpy(pszdst, src);
可以了!
strcpy中的前一个字符串比后一个字符串短,那第一个字符串会被第二个字
首先,是dest(前一个)内容的长度,还是空间的长度?
如果是空间长度不足,会造成不可知的后果
例如:
char dest[10];
strcpy(dest, "aaaaaaaaaaaaaaaaaaaaaaaaaa");
基本上会崩溃掉,如果第二个参数是精心设计的,就是堆栈溢出攻击。
如果是内容长度比第二个短,但是空间够,那会覆盖
如:
char dest[10] = "a";
strcpy(dest, "aaa");//copy之后为"aaa\0"