日期:2014-05-20 浏览次数:21093 次
#include<iostream> using namespace std; #define CHANGE 1; int main() { char ch[40]; cout<<"input a text:"<<endl; gets(ch); #if(CHANGE)//显示输出的那句话的密码形式(即每个字母的下一个字母如:a--b,...z--a) { for(int i=0;char[i]!='\0';i++) { if (char[i]>='a'&&char[i]<'z'||char[i]>='A'&&char[i]<'Z')//a-z,A-Z更清晰 char[i]=char[i]+1; else if(char[i]='z'||char[i]='Z') char[i]=char[i]-25; } } #endif cout<<"output:"<<endl<<ch; return 0; }
------解决方案--------------------
刚才没仔细看,补充下
我的四点意见:
1、如楼上 加上if(ch[i]=='\0') break;或者循环结束条件为ch[i]!='\0'
2、for循环变量初始化for(int i;i<40;i++)
3、把后面的‘Z’改成‘Y’if (char[i]>='a'&&char[i]<='y'||char[i]>='A'&&char[i]<='Z')【另外char换乘ch】
4、char[i]与ch[i]混淆,没有char[]的定义
#include<iostream> using namespace std; #define CHANGE 1; int main() { char ch[40]; cout<<"input a text:"<<endl; gets(ch); #if(CHANGE)//显示输出的那句话的密码形式(即每个字母的下一个字母如:a--b,...z--a) { for(int i=0;ch[i]!='\0';i++) { if (char[i]>='a'&&ch[i]<'z'||ch[i]>='A'&&ch[i]<'Z')//a-z,A-Z更清晰 ch[i]=ch[i]+1; else if(ch[i]='z'||ch[i]='Z') ch[i]=ch[i]-25; } } #endif cout<<"output:"<<endl<<ch; return 0; }