strcat函数

来源:互联网 发布:做网络直播设备 编辑:程序博客网 时间:2024/05/22 03:02
原因很简单,就是strcat(str1,str2)会先去掉str1的结束符后再把str2接连到str1末尾,这样很符合一个字符串只能有一个结束符的规定。 

char串的结束符石'\0',也就是二进制0,那么strcat的时候系统会忽略串最后的'\0',比如strA="abcd\0",strB="ABC\0",那么strcat(strA,strB)= "abcdABC\0",如果strA="abcd\0\0\0……"结果也是一样的。 

那么你的说的问题原因就显而易见了,memset(str1,0,10); 
之后str1的下标所指地址存储的值均为0,相当于str1[10]={'0','0','0'……},也可以理解为str1="\0\0\0……",strcat后str1的10个\0全部被忽略,字符串从起始地址接起,相当于 
char *str1 = “abafadfadf”;char *str2="sadfasdfa",然后str1=str2了。
原创粉丝点击