输入一串字符(长度不超过100)和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后面的第k个字母代替,变换公式:c=c+k。如果字母为z,则后一个字母是a,也就是字母字符形成一个圆。
时间: 2023-04-24 07:02:31 浏览: 280
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
好的,这是您需要的程序:
string s;
int k;
cin >> s >> k;
for(int i = ; i < s.length(); i++){
if(isalpha(s[i])){
if(isupper(s[i])){
s[i] = (s[i] - 'A' + k) % 26 + 'A';
}
else{
s[i] = (s[i] - 'a' + k) % 26 + 'a';
}
}
}
cout << s << endl;
程序中使用了isalpha函数来判断字符是否为英文字母,isupper函数来判断是否为大写字母,islower函数来判断是否为小写字母。对于大写字母,先将其转化为-25的数字,加上k后再取模,最后再转化为对应的字母;对于小写字母同理。
阅读全文