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