【发布时间】:2017-02-13 06:40:55
【问题描述】:
我一直在试图弄清楚如何得出以下程序的输出。我基本上想知道每次迭代后字符数组的状态。会有很大帮助的。
#include<iostream.h>
#include<conio.h>
#include<ctype.h>
void main()
{
char *name="ThE bESt meN wIN";
for(int i=0;name[i]!='\0';i++)
{
if(islower(name[i]))
name[i]=toupper(name[i]);
else
if(isupper(name[i]))
{
if(i%2==0)
name[i]--;
else
name[i]=tolower(name[i-1]);
}
}
cout<<name;
getch();
}
输出是: SHD BbRT MEe WHh
【问题讨论】:
-
离题。您正在使用四分之一世纪的编译器。当您将知识转移到其他应用程序时,预计会遇到一些困难。
-
你正在写入一个指向不可变内存的指针
-
代码的行为未定义。所以没有解释就足够了。
-
@LWimsey 这是 OP 必须面对的障碍之一。
-
@BhargabKakati 看起来像是来自拼图的代码。将字符串写在一张纸上,“手动”循环并写下结果是可行的
标签: c++ arrays string pointers output