VB字符串替换问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 11:14:33
我刚学VB,现在要实现:a到z 26个字母(不管大小写都要可以实现)全部替换成另外的大写字母(是没规律的替换,就是对应映射),相当于输入一段英文语句,全部换成另外的没规律的字母,空格替换为CAC,如:
输入:I am sorry! 替换为:OCACQDCACLGKKM!
标点符号不用变。还要个还原代码,一点又能看到原文。这相当于加密和解密。跪求!我只有一点分,如果对的话,全部奉送。
abcdefghijklmnopqrstuvwxyz映射为:
QWERTYUIOPASDFGHJKLZXCVBMN
空格映射:CAC,符号不用管。

我输入大写好像不对,比如:写入A,应替换为:Q,但却是:小写k.怎么解决?

对应映射的原则是什么?
你的算法有缺陷,不可能百分百还原

Private Sub Command1_Click()
slow = "abcdefghijklmnopqrstuvwxyz"
shigh = "QWERTYUIOPASDFGHJKLZXCVBMN"
s = Text1.Text
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
If s1 = " " Then
s2 = s2 & "CAC"
ElseIf InStr(slow, s1) Then
s2 = s2 & Mid(shigh, InStr(slow, s1), 1)
ElseIf InStr(shigh, s1) Then
s2 = s2 & Mid(slow, InStr(shigh, s1), 1)
Else
s2 = s2 & s1
End If
Next i
Text2.Text = s2
End Sub

Private Sub Command2_Click()
slow = "abcdefghijklmnopqrstuvwxyz"
shigh = "QWERTYUIOPASDFGHJKLZXCVBMN"
s = Text2.Text
s = Replace(s, "CAC", " ")
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
If InStr(slow, s1) Then
s2 = s2 & Mid(shigh, InStr(slow, s1), 1)
ElseIf InStr(shigh, s1) Then
s2 = s2 & Mid(slow, InStr(shigh, s1), 1)
Else
s2 = s2 & s