在 z 之后循环回到字母表的开头
Looping back to the beginning of the alphabet after z
我正在为学校做一道题,我必须编写一个旋转 13 个字符的程序。我已经完成了程序,但它会旋转成一些奇怪的字符。我想让它在大写和小写达到 'z' 后回头看 'a'。基本上,我想将我的选项限制为 A-Z 和 a-z。
尝试混合使用 while 语句和 if 语句,最后只用了一些 if 语句。我知道他们错了,但它以当前状态运行。
#include <iostream>
using namespace std;
//Function Prototypes
char rot(char c);
int mylen(char c[]);
int main()
{
char in[120], out[120];
int i; // index into in
cout << "Enter text: ";
cin.getline(in,120);
while (strcmp(in, "exit"))
{
for (i = 0; i < mylen(in); i++)
{
out[i] = rot(in[i]);
}
out[i++] = '[=10=]';
cout << out << endl;
cout << endl << "Enter some more text: ";
cin.getline(in,120);
}
return 0;
}
char rot(char c)
{
if (c >= 'a' and c <= 'z')
c = c + 13;
if (c > 'z')
c = c - 26;
else if (c >= 'A' and c <= 'Z')
c = c + 13;
if (c > 'Z')
c = c - 26;
return c;
}
int mylen(char c[])
{
int cnt = 0;
while (c[cnt] != '[=10=]')
cnt++;
return cnt;
}
我只是想让它旋转 13 个字符,当有人输入旋转代码时,再旋转 13 个字符。
建议大家仔细观察ASCII code to display the character的table,大写字母"A"~"Z"和小写字母[=18之间相隔6个字符=]~"z"
这是我的代码:
if (c >= 'n' && c <= 'z')
{
c = c - 13;
}
else if (c >= 'a' && c <= 'm')
{
c = c + 13;
}
if (c >= 'N' && c<='Z')
{
c = c - 13;
}
else if (c >= 'A' && c <= 'M')
{
c = c+13;
}
我正在为学校做一道题,我必须编写一个旋转 13 个字符的程序。我已经完成了程序,但它会旋转成一些奇怪的字符。我想让它在大写和小写达到 'z' 后回头看 'a'。基本上,我想将我的选项限制为 A-Z 和 a-z。
尝试混合使用 while 语句和 if 语句,最后只用了一些 if 语句。我知道他们错了,但它以当前状态运行。
#include <iostream>
using namespace std;
//Function Prototypes
char rot(char c);
int mylen(char c[]);
int main()
{
char in[120], out[120];
int i; // index into in
cout << "Enter text: ";
cin.getline(in,120);
while (strcmp(in, "exit"))
{
for (i = 0; i < mylen(in); i++)
{
out[i] = rot(in[i]);
}
out[i++] = '[=10=]';
cout << out << endl;
cout << endl << "Enter some more text: ";
cin.getline(in,120);
}
return 0;
}
char rot(char c)
{
if (c >= 'a' and c <= 'z')
c = c + 13;
if (c > 'z')
c = c - 26;
else if (c >= 'A' and c <= 'Z')
c = c + 13;
if (c > 'Z')
c = c - 26;
return c;
}
int mylen(char c[])
{
int cnt = 0;
while (c[cnt] != '[=10=]')
cnt++;
return cnt;
}
我只是想让它旋转 13 个字符,当有人输入旋转代码时,再旋转 13 个字符。
建议大家仔细观察ASCII code to display the character的table,大写字母"A"~"Z"和小写字母[=18之间相隔6个字符=]~"z"
这是我的代码:
if (c >= 'n' && c <= 'z')
{
c = c - 13;
}
else if (c >= 'a' && c <= 'm')
{
c = c + 13;
}
if (c >= 'N' && c<='Z')
{
c = c - 13;
}
else if (c >= 'A' && c <= 'M')
{
c = c+13;
}