如何在C++的凯撒密码程序中包含空格?



好的,所以上次我在这个程序上寻求帮助,因为我无法将字符转换为 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] !='')    // 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可能是您的朋友。 这是您的代码,但已修复以使用它。

#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] != '')    // 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"将是"[",但这可能是设计使然?还建议使用标准迭代器遍历字符串,但如果您只是在学习,现在不要担心这些!

相关内容

最新更新