For I = 1 To Len(InputString)
If InStr(InputString, Mid(Vowels, I, 1)) Then
nVowels = nVowels + 1
End If
Next
我是新手,并尽我所能学习这门语言:)提前谢谢:) 无论如何,这是我的代码的一部分,它计算给定字符串中的元音数量。
答案 0 :(得分:1)
您的代码很好,除了一个小错误:您交换了InStr
函数的参数..
假设你有
Dim Vowels As String
Vowels = "aeiou"
您当前的代码不适用于"Sun"
这样的字词。原因如下:
1-您的for循环将被初始化为从1到3(“Sun”的长度)
的计数2-您正在检查“Sun”是否包含元音的第一个字符(a)。 3-检查“Sun”是否包含元音的下一个字符(e)。 4-检查“Sun”是否包含元音(i)的下一个字符。
5-循环退出(i = 3)。
因此需要重新编写逻辑以反过来工作:
For I = 1 To Len(InputString)
If InStr(UCase(Vowels), Mid(UCase(InputString), I, 1)) Then
nVowels = nVowels + 1
End If
Next