vb 输入一个字符串,统计各种字符的个数
2个回答
展开全部
Private Type lei'自定义类型
s As String'记录某个字符
n As Long'记录该字符的个数
End Type
Private Sub Command1_Click()
Dim s As String, n() As lei, i As Long, j As Long
s = InputBox("请输入字符串")
ReDim n(1 To 1)
For i = 1 To Len(s)
If InStr(1, s, Mid(s, i, 1)) = i Then'如果查找的字符串位置等于i,说明以前没有出现过该字符,执行加入新字符操作
If i <> 1 Then ReDim Preserve n(1 To UBound(n) + 1)'动态数组下标加1
n(UBound(n)).s = Mid(s, i, 1)'记录相应字符
n(UBound(n)).n = 1'记录相应字符个数
Else
For j = 1 To UBound(n)'这个循环是查找已有字符在数组中的位置
If n(j).s = Mid(s, i, 1) Then'找到之后,个数加1
n(j).n = n(j).n + 1
Exit For
End If
Next j
End If
Next i
For i = 1 To UBound(n)'输出刚才找到的内容
Print "字符" & n(i).s & "共有" & n(i).n & "个"
Next i
End Sub
这个例子使用动态数组+自定义类型解决需要的问题。
展开全部
楼主试下这段代码吧。
这个用于统计各种西文字符,非ASCII码的字符忽略。
提问者经常都是不注重“细节方面”,往往让我们来猜楼主的需求。
因为你并没有说是否要处理汉字之类的(如果要处理汉字,方法不一样)
Private Sub Command1_Click()
Dim aChr(95) As Long
Dim strText As String
Dim i As Long, c As Long
strText = InputBox("请输入字符串:")
For i = 1 To Len(strText)
c = Asc(Mid$(strText, i, 1))
If (c > 0) Then
c = c - 32
aChr(c) = aChr(c) + 1
End If
Next
strText = "输入的字符串中包含:" & vbLf
c = 0
If (aChr(0) > 0) Then c = 1: strText = strText & "<空格>" & aChr(0) & "个 "
For i = 1 To 95
If (aChr(i) > 0) Then
strText = strText & Chr$(i + 32) & " " & aChr(i) & "个"
c = c + 1
If (c Mod 5 = 0) Then
strText = strText & vbLf
Else
strText = strText & " "
End If
End If
Next
MsgBox strText, 32
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询