我如何在我的 C++ 凯撒密码程序中包含白色 space?
How do i include white space in my Caesar Cipher program in 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] !='[=11=]') // 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] != '[=10=]') // While the string isn't at the end...
{
v = int(word[x]);
sv = v + shift;
x++;
cout << static_cast<char>(sv);
}
return 0;
}
你在这里做了一些其他有点奇怪的事情,比如你没有取任何角色的模数,例如 'Z' 旋转 1 将是 '[' ,但这可能是设计使然?还建议使用标准迭代器迭代字符串,但如果您只是在学习,现在不要担心这些!
好吧,上次我就此程序寻求帮助,因为我无法将字符转换为 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] !='[=11=]') // 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] != '[=10=]') // While the string isn't at the end...
{
v = int(word[x]);
sv = v + shift;
x++;
cout << static_cast<char>(sv);
}
return 0;
}
你在这里做了一些其他有点奇怪的事情,比如你没有取任何角色的模数,例如 'Z' 旋转 1 将是 '[' ,但这可能是设计使然?还建议使用标准迭代器迭代字符串,但如果您只是在学习,现在不要担心这些!