strcpy(char*_Destination,char*_Source),将_Source字符串复制到到_Destination内存空间;
首先strlen(str1) / 2=6
str1+strlen(str1) / 2 →str1+6→str[6]的地址,也就是从"How do you do"字符串的第七个字符(y字符前的空格字符)开始被替换成"es she"字符串。由于" you do"字符串长度为7+1('\0')字符,以及"es she"字符串长度为6+1('\0')字符,最后输出为"How does she"。
"How do you do"字符串最后的'\0'字符没有替换,所以考虑到'\0'字符,最后的输出结果可以看成"How does she\0\0"。es she\0为被替换成的字符串,也就是"es she"
我们不妨用冖代表一个空格。
1、str1是“How冖do冖you冖do”
2、strlen(str1) 的值是13
3、strlen(str1) /2的值是6
4、str1代表首字母H的地址
5、str1+strlen(str1) /2的值H的地址+6,即“do冖you” 之间那个空格的地址
6、用来置换的字符串是“es冖she”,共6个字符,连同结束符0共7个
7、被置换的就是从那个空格开始的7个字符“冖you冖do"
8、就是用【es冖she`0`】置换“How冖do【冖you冖do】”中用黑括号括起来的部分。
9、替换的结果是“How冖does冖she"外加一个字符串结束符。
10、所以,程序输出的结果是:
How冖does冖she
有什么问题请留言。
是从str1+6的位置开始复制后面的字符串,
输出应该是“How do es she”