如何在C ++中的Caesar Cipher程序中包含空格?

问题描述 投票:1回答: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] !='\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

你能帮助我吗?

c++ encryption software-design caesar-cipher
1个回答
0
投票

在这种情况下,字符串中的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] != '\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'将是'[',但这可能是设计的?还建议使用标准迭代器迭代字符串,但如果你刚刚学习,现在就不要担心任何问题!

© www.soinside.com 2019 - 2024. All rights reserved.