作业帮 > 综合 > 作业

vb的问题,求一个算法!每个字母改为它后面的第N个字母.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/03 23:49:55
vb的问题,求一个算法!每个字母改为它后面的第N个字母.
我大概写了下,这看来好像没有问题,但是当输入最后三个字母后(包括大写),x,y,z 就有问题了.
Private Sub Command1_Click()
n$ = Text1.Text
For i = 1 To Len(n)
  c$ = Mid(n$, i, 1)
For j = 0 To 2
If Opt1(j).Value = True Then m = Val(Opt1(j).Caption): b$ = String(1, Asc(c$) + m): a$ = a$ + b$
Next j
Next i
Text2.Text = a$
End Sub

请看图,如果正常,移动位数是3的情况,应该是x,y,z应该转换成a,b,c请问,应该有什么算法呢?

这个只能是特判了.还有一个方法是把先把这种字母转化成对应的数字,如‘a’-‘a’变成0
‘b’-'a'=1
然后再加上3对26取余
再加回去
z-'a'=25
25+3=28
28%26=2
'a'+2='c'
就是这样转化,听懂了吗?