中易网

VB中首尾字母怎么调换?

答案:5  悬赏:30  
解决时间 2021-11-08 07:10
对输入的英文进行加密时,规则是将单词的首位字母互换,还有偶数长的单词中间两个字母互换,奇数长的单词中间的字母按字母表位置后移两位,如study→Ytwds,Taylor→Ralyot应该怎么做啊?求大神解!部分是这样的
Private Sub Command1_Click()
Dim x As String, y As String, m1 As String * 1, m2 As String * 1
Dim n As Integer
n = Len(Text1)
x = LCase(Text1)
y = Text1.Text
If n Mod 2 = 0 Then
m1 = Mid(y, n / 2, 1)
m2 = Mid(y, n / 2 + 1, 1)
后面要怎么做呢?急求~~~~~
最佳答案
VB中首尾字母调换,只需要取首字母和尾字母再取中间的所有字母,再重新组合就可以。代码如下:
Private Sub Command1_Click()
Dim x As String, a As String, b As String, c As String
x = Text1.Text
a = Left(x, 1) '取首字母
b = Right(x, 1) '取尾字母
c = Mid(x, 2, Len(x) - 2) '取中间的字母
x = b & c & a '重新组合合并
MsgBox x
End Sub
全部回答
Private Sub Command1_Click() chg (Text1.Text) chg (Text2.Text) End Sub Sub chg(s As String) Dim n As Integer, i As Integer, t As String * 1 n = Len(s) t = Mid(s, 1, 1) Mid(s, 1, 1) = UCase(Mid(s, n, 1)) Mid(s, n, 1) = LCase(t) If n Mod 2 = 0 Then i = 2: n = n - 1 Do While i < n t = Mid(s, i, 1) Mid(s, i, 1) = Mid(s, n, 1) Mid(s, n, 1) = t i = i + 1: n = n - 1 Loop Else For i = 2 To n - 1 Mid(s, i, 1) = Chr(Asc(Mid(s, i, 1)) + 2) Next i End If Print s End Sub
你不会vb文本函数操作吗?right left len asc chr本程序需要的函数
你的中间两位 交换 的 说法 有些 歧义 如果单词有8位该怎么办? 我不太理解。 我这边 大致 写了一下。 有些地方需要你自己修改了 'study→Ytwds,Taylor→Ralyot Sub t() Const str1 As String = "study" Const str2 As String = "Ralyot" Debug.Print doChange(str1) Debug.Print doChange(str2) End Sub Function doChange(inWord As String) Dim lLen As Long lLen = Len(inWord) Dim lHalfLen As Long Dim lHalfLenPoint As Long lHalfLenPoint = (lLen + lLen Mod 2) / 2 lHalfLen = (lLen - lLen Mod 2) / 2 Dim result_Zen As String Dim result_Hou As String For i = 1 To lHalfLen Dim c_Zen As String Dim c_Hou As String c_Zen = Mid(inWord, i, 1) c_Hou = Mid(inWord, Len(inWord) - i + 1, 1) ‘从这里开始要你自己按照实际需要修改了 If i Mod 2 = 1 Then result_Zen = result_Zen & c_Hou result_Hou = c_Zen & result_Hou Else result_Zen = result_Zen & c_Zen result_Hou = c_Hou & result_Hou End If Next If lHalfLenPoint = lHalfLen Then doChange = result_Zen & result_Hou Else doChange = result_Zen & doAdd2(Mid(inWord, lHalfLenPoint, 1)) & result_Hou End If ‘到这里为止要你自己按照实际需要修改了 End Function Function doAdd2(inWord As String) Dim c As Integer c = Asc(inWord) c = c + 2 If (c > 90 And c < 93) Or c > 122 Then c = c - 26 End If doAdd2 = Chr(c) End Function
mid 可以取任意长度的字符出来..4个变量 a= 单词第一个字母 b=单词中间的所有字母 c=单词的最后一个字母 d=c & b & a 最后d单词不就是你要的首尾互换的效果么? 上面的 abc三个变量赋值过程可以直接省略 d= mid("study",len("study")-1,1) & mid("study",2,len("study")-1) & mid("study",1,1) 至于判断单词的奇偶数 len 就能处理判断了.. 奇数单词顺延的话.你可以使用ascii码就对了..只是你需要判断当字母是Z时,应该替换成什么..其他字母的ASCII码+1 得到的字母是什么
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
成华区建设路附近哪里可以拔火罐
修笔记本主板赚钱吗?
红苹果家具床头柜价格多少一个?
关于自动挡与手动挡的问题
呼和浩特清莲瑜伽教练培训班什么时候开始上课
帅康抽油烟机的网照那里有卖
张盛晞姓名测试得分
孕早期营养怎么均衡?孕周营养吃什么好?
什么是按诊?
什么是玉髓?佩戴玉髓有什么好处?
山核桃油可以炒鸡肉么
临猗县运城德济堂大药房(东城路)地址是什么,
珍珠芦荟发黑了怎么办
祝兄弟姐妹们新年快乐,牛年大发,牛气冲天!
用咖啡花肥好不好?
推荐资讯
艾拉斯钻石做啥用???
求那种霸道总裁虐身虐心但又深爱女主的小说只
东方牙科地址在什么地方,想过去办事
打武魂!
吃完香蕉能喝咖啡吗吃完香蕉能喝咖啡吗
济南耳机维修
请问观致汽车在上海有4S店吗?
手机辐射对宝宝影响大吗谁了解
苹果平板电脑音响推荐哪款好?
新速腾1.6自动舒适型与新轩逸1.6自动豪华型,
男性掉头发是什么原因?
肉松饼都是什么肉
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?