读书人

大家各自解释下结果的原因解决办法

发布时间: 2012-05-09 12:13:59 作者: rapoo

大家各自解释下结果的原因

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个字符。

后面的结果不用说了。

读书人网 >C语言

热点推荐