<分区>
我尝试在 CodeBlocks(版本 13.12)上编译它。不知何故,指针在被 toupper() 调用之前递增
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char str[80] = "the only way";
char *p;
p = str;
while(*p){
*p++ = toupper(*p);
}
printf(str);
return 0;
}
这导致输出“HE ONLY WAY”,而我正在寻找输出“THE ONLY WAY”。我在我的电脑上试过它给出了错误的输出。然而,当我在 friend 的计算机上尝试这段代码时,代码运行良好,给出了输出“THE ONLY WAY”。 我的问题是为什么我的输出不同? P.s 如果我更换
*p++ = toupper(*p);
与
*p++ = toupper( *(p-1));
我得到了“THE ONLY WAY”的期望输出。