如何解决如何在C ++中用相对的字母小写字母替换字符串中的每个字母小写字母?
我想使用for循环找到相反的字母。另外,我想指出的是,我试图找到相反的字母。例如,将“ a”替换为“ z”,将“ b”替换为“ y” ...
例如,用户输入:“ 3 feg”,该程序的输出将是:“ uvt”。另外,我的约束是1
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
`int` user_input_number;
string user_input_text;
cout << "Type: ";
cin >> user_input_number;
cout << "Type: ";
cin >> user_input_text;
for(char i = 'a'; i <= 'z'; i++)
{
cout << << endl;
}
return 0;
}
解决方法
这是一种使用ASCII算术的解决方案:
string s = "abc";
for(int i = 0; i < s.length(); i++){
s[i] = 219 - s[i];
}
cout << s; // "zyx"
之所以起作用,是因为所有ASCII个字符都在0到127之间,这样值就可以循环返回
,// Example program
#include <iostream>
#include <string>
#include <map>
using namespace std;
string encrypt(int n,string s) {
map<char,int> alphabetMap = { };
string alpha = "abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < 26; i++){
alphabetMap.insert({alpha[i],i});
}
string coded = "";
for (int i = 0; i < n; i++) {
int index = alphabetMap[s[i]];
coded += alpha[25 - index];
}
return coded;
}
int main()
{
int n = 0;
string s = "";
cout << "Enter n and string: " ;
cin >> n >> s;
cout << encrypt(n,s) << endl;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。