利用条件编译形成密码

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:31:06
输入的若为字母,,则将其变为下一个字母(如a变成b;z变成a),实现密码转换,要求使用条件编译。
搞了半天还是没跳出毛病,请求众位高手帮忙修改下,感谢!!!
/* Note:Your choice is C IDE */
#include "stdio.h"
#define CHANGE 1
main()
{
char str[20],c;
int n=0;
scanf("%s",str);
#if CHANGE
for(c=str[n];n<20;n++)
{
if((c>'a'&&c<'z')||(c>'A'&&c<'Z'))c=c+1;
if(c=='z')c='a';
if(c=='Z')c='A';
if(c=='\0')continue;

}
#endif

printf("%s",str);
}

你改变的只是变量c的值,不是str中元素的值. 而且不只这一个错误,你的C语言基础太差了.正确代码如下

#include "stdio.h"
#define CHANGE 1
main()
{
char str[20],*c=str;
scanf("%s",str);
#if CHANGE
{
while(*c!='\0')
{
if((*c>='a'&&*c<='z')||(*c>='A'&&*c<='Z'))*c=*c+1;
if(*c=='z')*c='a';
if(*c=='Z')*c='A';
c++;
}
}
#endif

printf("%s",str);
}