问题是:
编写一个简单的程序,使用查找表或简单的算法来加密文本字符串;例如,文本字符串“Hello World”可以通过简单地将每个字符转换为字母表中的下一个字母来加密为字符串“ifmmp xpqme”
char inputwords[100];
char *words;
char y='w';
int x=0;
cout<<"Enter word: ";
cin>>inputwords;
words=&inputwords[0];
for(int ctr=0;ctr<100;ctr++)
{
if(*(words+ctr)+1==1||*(words+ctr)+1==-51)
cout<<" ";
else
cout<<char(*(words+ctr)+1);
}
这是代码片段 我的问题是,当我输入“Hello World”时,输出只是“ifmmp”,它忽略了“World”。帮助:(
最佳答案
cin
在输入流上使用 >>>
只读取第一个单词,在您的情况下它只是 Hello
跳过 World
。因此,要将整个多词字符串读入 char
数组 inputwords
使用,
cin.getline(inputwords, sizeof(inputwords));
无论您的输入字符串是什么,for
循环都会迭代 100
次,这将导致字符串后出现垃圾值。
您需要处理大小写,例如,如果两个单词之间有空格,则让 put 保持不变,而不是将其推进到 !
。
关于c++ - 输入 "cobra"输出 "dpcsb"将 1 个字符转换为下一个 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21680616/