Как сказал Дэйв, самое простое решение было бы иметь массив длиной 26 (для английского языка), и цикл через каждый символ в строке, увеличивающемся правильный элемент массива. Вы можете использовать значение ASCII каждого символа, чтобы определить, какую букву он, затем перевести ASCII номер буквы в соответствующий индексный номер:
'Dimension array to 26 elements
Dim LetterCount(0 to 25) As Long
'Temporary index number
Dim tmpIdx As Long
'Temporary character
Dim tmpChar as String
'String to check
Dim checkStr As String
checkStr = "How many of each letter is in me?"
'Change all letters to lower case (since the upper case
'of each letter has a different ASCII value than its
'lower case)
checkStr = LCase(checkStr)
'Loop through each character
For n = 1 to Len(checkStr)
'Get current character
tmpChar = Mid(checkStr, n, 1)
'Is the character a letter?
If (Asc(tmpChar) >= Asc("a")) And (Asc(tmpChar) <= Asc("z")) Then
'Calcoolate index number from letter's ASCII number
tmpIdx = Asc(tmpChar) - Asc("a")
'Increase letter's count
LetterCount(tmpIdx) = LetterCount(tmpIdx) + 1
End If
Next n
'Now print results
For n = 0 to 25
Print Chr(Asc("a") + n) & " - " & CStr(LetterCount(n))
Next n
Haven У меня было время попробовать, но спасибо за код. – Dylan
Вопрос помечен vb, этот код - C#. – ephemient