循环增加ascii值

时间:2018-05-24 09:18:16

标签: c++ loops ascii

我想通过添加号码将char更改为另一个char

int n;
cin >> n;
str[i] = str[i]+n;

问题是:我想在循环中完成它。 考试:

  

n = 4;    str [i] = Y;   答案应该是:C;   我怎样才能创建这个循环?

2 个答案:

答案 0 :(得分:0)

您可以使用%

执行所需操作
str[i] = (str[i] - 'A' + n) % 26 + 'A';

26因为字母表中有26个字母

答案 1 :(得分:0)

您可以将0分配给A 1并分配给B并类似

int a=s[i]-'A'

现在您可以在其中添加n并找到带有26(没有字母)的mod y是24 n = 4然后(24 + 4)%26 = 2因此我们可以看到3是C 代码是

for(int i=0;i<l;i++){
int a=s[i]-'A';
a=(a+n)%n;
s[i]=(char)(a+65);//ascii value
}