c++ - 如何在 C++ 中的 Caesar Cipher 程序中包含空格?
问题描述
好的,所以上次我在这个程序上寻求帮助,因为我无法将字符转换为 DEC 并添加到它。多亏了一些建议,我终于让它工作了,它几乎完成了。
#include <iostream>
using namespace std;
int main()
{
char word[128];
int x = 0;
int v;
int shift;
int sv;
cin >> shift;
cin >> word;
while (word[x] !='\0') // While the string isn't at the end...
{
v = int(word[x]);
sv = v + shift;
x++;
cout<< static_cast<char>(sv);
}
return 0;
}
但是我不知道如何让它接受空格使用
isspace
你们能帮帮我吗?
解决方案
getline
在这种情况下,in string 可能是你的朋友。这是您的代码,但已修复以使用它。
#include <string>
int rotMain()
{
//char word[128];
string word;
int x = 0;
int v;
int shift;
int sv;
cin >> shift;
getline(cin, word);
while (word[x] != '\0') // While the string isn't at the end...
{
v = int(word[x]);
sv = v + shift;
x++;
cout << static_cast<char>(sv);
}
return 0;
}
你在这里做了一些有点奇怪的其他事情,比如你没有取任何角色的模数,例如旋转 1 的“Z”将是“[”,但这可能是设计使然? 还建议使用标准迭代器对字符串进行迭代,但如果你只是在学习,暂时不要担心这些!
推荐阅读
- selendroid - 任何人都有 selendroid-standalone-0.17.0-with-dependencies jar 文件,其中包含修复 advs 到 adv 的新 android 版本
- ios - 调用 .cancel() 时,DispatchWorkItem 未终止函数
- c# - 在 C# 中将泛型 EventHandler 作为函数参数传递
- html - 使用 Python 多方向(纵向和横向)从 HTML 生成 PDF
- xcode - 为什么 Xcode 10 在右窗格中打开随机文件?
- mysql - 与 RDS MySQL/Aurora 无服务器集群的 SSL 连接因 Node.js 失败
- php - 在 SQL 输出中分隔月份
- jenkins - 想在 Jenkins 中安排一个任务在 3 月和 9 月的第一个星期二触发
- java - PrintWriter 不输出所有字符
- ios - IOS:从其他选项卡展开 segues