循环回到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++] = ' ';
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] != ' ')
cnt++;
return cnt;
}
我只是想让它旋转13个字符,当有人输入旋转后的代码时,再旋转13个字。
我建议您应该仔细观察ASCII代码表来显示字符。大写字母"A"~"Z"和小写字母"A"~"Z"之间有6个字符
这是我的代码:
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;
}
相关文章:
- 如何在C++中移动字母表中的字母?
- 循环回到z之后的字母表的开头
- C 分类字符串按大小和字母表
- 我在使用布尔函数时遇到问题,其中用户输入两个字母并输出字母表中最高的字母
- 使用列表向后打印字母表时缺少'a'
- 警告:数组"字母表"由括号字符串文本初始化
- 如何检查字符是否是某个字母表中的字母
- 为什么在此 C 代码中将字母表拆分为多个范围?
- c++如何确定字母表中一个单词是否在另一个单词之前
- 计算C++中每个字母表的出现次数
- 求字母表{a,b,c}上长度为n的字符串w的个数
- 如何检查字母表中的字母在文本文件中出现的次数C++
- 将莫尔斯值解码为字母表
- 在 C 语言中,求解从字母表中输入的整数并重复循环
- 迭代C/C++中的字母表
- 制作一个程序来计算字母表中每个字母的出现次数
- C++编程中的字母表到星形
- 按字母表对字符串数组进行排序并显示值
- 找出字母表中一个字母对应的数字
- 关于在链表开头插入节点(程序未正确执行)