vb中随机产生长度为1~20的大写字符串

如题所述

【关于vb中随机产生长度为1~20的大写字符串】

********* 本人原创编写,绝无复制抄袭 *********

步骤如下:

1,第一步,创建和定义变量,用来存放临时数据

Dim S As String      '用来存放新字符串中允许产生的字符


Dim I As Long        '用来存放随机数


Dim sText As String  '用来装载20个随机字符作为最终结果

2,第二步,添加一个字符串,将从这些字符中产生新的随机字符。 如:

S = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"


3,第三步,创建一个循环过程,他的条件是字符串长度小于20


While Len(sText) < 20

4,第四步,产生随机数,它的范围是1至你字符串S的长度


I = Int(Rnd() * Len(S)) Mod Len(S) + 1

5,第五步,从S串中随机数的地方截取一个字符添加到结果中,直到这结果长度达到20时停止循环


sText = sText & Mid(S, I, 1)

Wend

6,第六步,打印结果到窗体上,如果你要指定大小写,请用相应函数:Ucase(转为大写),Lcase(转为小写)


Print sText

下面我把完整代码,写成一个产生随机字符串的函数,方便大家调用,如下


'函数:产生随机字符串的函数,调用方法  StrRandom("将从哪些字符中产生",返回的长度)
Public Function StrRandom(ByVal S As String, ByVal Count As Long) As String
    Dim sText As String, I As Long
    While Len(sText) < Count
        I = Int(Rnd() * Len(S)) Mod Len(S) + 1
        sText = sText & Mid(S, I, 1)
    Wend
    StrRandom = sText
End Function


Private Sub Command1_Click() '固定20长度
'调用示例:从下面字符中产生固定20长度的随机字符串
Const Str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Print StrRandom(Str, 20)
End Sub


Private Sub Command2_Click() '随机1~20长度
'调用示例:从下面字符中产生随机1~20长度的随机字符串
Const Str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Print StrRandom(Str, (20 * Rnd) + 1)
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-03

vb中随机产生长度为1~20的大写字符串的代码如下:

Private Sub Command1_Click()

Randomize

Text1.Text = ""

n = Int(Rnd * 20) + 1

For i = 1 To n

Text1.Text = Text1.Text & Chr(Int(Rnd * 26 + 65))

Next i

End Sub

Private Sub Command2_Click()

c = InputBox("请输入一个大写字母:")

n = 0

For i = 1 To Len(Text1.Text)

If Mid(Text1.Text, i, 1) = c Then n = n + 1

Next i

MsgBox Text1.Text & " 中有 " & n & " 个 " & c

End Sub

Private Sub Form_Load()

Text1.Text = ""

End Sub

第2个回答  2015-10-31

  新建一VB工程,在窗体上添加一个按钮。


  然后进入 代码区,删除所有代码后,粘贴以下代码即可:随机产生1-20个随机的大写字符串。

Option Explicit

Private Sub Command1_Click()
Dim I As Long
Dim K As Long
Dim s As String
K = Rnd() * 19 + 1
For I = 1 To K
    s = s & Chr(Rnd() * 25 + 65)
Next I
MsgBox "随机产生的大字字母串是:" & s
End Sub

Private Sub Form_Load()
Randomize
End Sub

  运行效果图:

本回答被网友采纳
第3个回答  2017-11-13

这道题需要分两步进行,首先需要随机生成字符串的长度(1~20个),然后按照个数随机生成大写字符并连接为字符串。代码如下:

Dim N As Integer,strOut As String,i As Integer
N=Int(RND * 20+1)        '生成字符串个数
strOut=""
for i=1 to N
    strOut=strOut & chr(65 + RND * 26)'随机生成数(0~25),与'A'的Ascii码相加,生成随机大写字母
Next
Print strOut

第4个回答  2017-11-30
Private Sub Command1_Click()
Dim i As Integer, n As Integer, s As String
n = Int(Rnd * 20) + 1
s = ""
For i = 1 To n
s = s + Chr(Int(Rnd * 25 + 66))
Next
Print s
End Sub

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网