vb 输入一个字符串,统计各种字符的个数

 我来答
书狂1979
推荐于2017-12-16 · TA获得超过155个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:180万
展开全部
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

 这个例子使用动态数组+自定义类型解决需要的问题。

涐吢铱舊囿儚
2014-01-05 · TA获得超过488个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:586万
展开全部

楼主试下这段代码吧。

这个用于统计各种西文字符,非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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式