大家各自解释下结果的原因
- C/C++ code
#include <stdio.h>#include <string.h>int main(){ int i; char greeting[]="\nHello World!\n"; for(i=0; i<strlen(greeting); i++) greeting[i]^=111; for(i=0; i<strlen(greeting); i++) greeting[i]^=111; printf("%s\n",greeting); return 0;}[解决办法]
小写字母o的编码是111,在第一个循环里与111异或后变成0
第二个循环的终止条件里strlen(greeting)函数将该0视作字符串结尾,于是第二个循环就只恢复了前面5个字符。
后面的结果不用说了。