Как использовать случайную букву? - PullRequest
0 голосов
/ 21 октября 2018

Можно ли в VBScript выбрать случайную букву и использовать ее до тех пор, пока все буквы не будут хотя бы один раз написаны заглавными буквами?

Dim a
a = "Hello"

For i=o To Len(a)-1
    If Mid(a,i+1, 1) = Mid(a, i+1, 1) Then
        b = Mid(a, i+1, 1)
        MsgBox b
    End If
Next

Вот какой код я собрал.До сих пор он читает строку за буквой.Я хочу, чтобы результат был примерно таким:

hello
Hello
hEllo
etc.

, но я не могу понять, как это сделать, не вдаваясь в сверхсложные Mid Left Right операторы, которые становятся запутанными.Является ли это возможным?Или мне нужно использовать что-то вроде Mid(LCase(s,1,1) & Mid(UCase(s,2,1)) & Mid(LCase(s,3,3)?

1 Ответ

0 голосов
/ 21 октября 2018

Используйте Len(), чтобы определить позиции букв для заглавных букв, и Left() + UCase(Mid()) + Mid(), чтобы фактически заглавными буквами в p =

Option Explicit
Dim s : s = "hello"
Dim l : l = Len(s)
Dim i : i = 0
Do Until s = UCase(s)
   Dim p : p = Fix(Rnd() * l) + 1
   If Mid(s, p, 1) <> UCase(Mid(s, p, 1)) Then s = Left(s, p - 1) & UCase(Mid(s, p, 1)) & Mid(s, p + 1)
   WScript.Echo i, p, s
   i = i + 1
Loop 

output:

cscript 52911013.vbs
0 4 helLo
1 3 heLLo
2 3 heLLo
3 2 hELLo
4 2 hELLo
5 4 hELLo
6 1 HELLo
7 4 HELLo
8 5 HELLO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...