一小段C++程序~

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:49:56
#include <iostream.h>
#define LETTER 0
void main()
{
char str[20]="C Language",c;
int i=0;
while ((c=str[i]) !='\0')
{
i++;
#if LETTER
if (c>='a' && c<='z')
c=c-32;
#else
if (c>='A' && c<='Z')
c=c+32;
#endif
cout<<c;
}
cout<<endl;
}

这个是书上一小段程序代码,可我用VC时运行提示出错,为什么啊??哪有问题吗?
成功了成功了,但是我还是有不太明白的地方
#define LETTER 0 这个0有什么作用啊?
char str[20]="C Language",c;这里面的str是随意命名的还是预定义过的代表什么特殊意义的?后面那个c是什么意思?
还有就是#if LETTER 这一句有什么用?和前面的define之间到底有什么关系?

回答好的有额外加分~~谢谢!

哦~~~我还以为是大写就能变小写,是小写变大写呢...
那那个第五行最后的c是做什么用的呢??

#if LETTER 这句话是判断 LETTER的值,如果为0,则
#if LETTER
if (c>='a' && c<='z')
c=c-32;
这一段代码不进行编译,而是编译以下的
#else
if (c>='A' && c<='Z')
c=c+32;

LETTER的值如果为1,则相反,
编译
if (c>='a' && c<='z')
c=c-32;
而不编译
if (c>='A' && c<='Z')
c=c+32;

所以开头#define LETTER 0定义LETTER的值很重要
如果是0就是把小写字母改成大写的
如果是1就是把大写字母改成小写的

#include <iostream.h>
#define LETTER 0
int main()
{
char str[20]="C Language",c;
int i=0;
while ((c=str[i]) !='\0')
{
i++;
//#if LETTER
if (c>='a' && c<='z')
c=c-32;
//#else
if (c>='A' && c<='Z')
c=c+32;
//#endif
cout<<c;
}
cout<<endl;
}

改成这样好吗

你创建的是Win32工程
你应该创建Win32控制台工程。

这个程序可以