VB中怎的将一个字符串一个字符一个字符的比较

VB中怎样将一个字符串一个字符一个字符的比较?
VB中怎样将一个字符串一个字符一个字符的比较?
VB中好像不能用字符数组,只能用字符串数组!故而在下不能进行单个字符的比较?
麻烦各位大侠给小弟指点迷津!

------解决方案--------------------
提供一个思路给你:
每次敲键盘的时候都会产生一个键盘事件,取键盘的ASC码,与正确的字符ASC码进行比较就行了。
------解决方案--------------------
一个个取出来比较
mid(str,i,1)
------解决方案--------------------
探讨
......
VB中好像不能用字符数组,.....


------解决方案--------------------
Mid 函数示例
本示例使用 Mid 语句来得到某个字符串中的几个字符。

Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo" 建立一个字符串。
FirstWord = Mid(MyString, 1, 3) ' 返回 "Mid"。
LastWord = Mid(MyString, 14, 4) ' 返回 "Demo"。
MidWords = Mid(MyString, 5) ' 返回 "Funcion Demo"。


------解决方案--------------------
可以使用API函数来实现,参见如下例子:
VB code

Option Explicit
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, _
                                                                      ByVal lpText As String, _
                                                                      ByVal lpCaption As String, _
                                                                      ByVal wType As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, _
                                                                     ByVal ByteLen As Long)

Private Sub Command1_Click()
    Dim strOne As String        '字符串1
    Dim strTwo As String        '字符串2
    Dim lngADDstrOne As Long    '字符串1的地址
    Dim lngADDstrTwo As Long    '字符串2的地址
    Dim byteOne As Byte          '
    Dim byteTwo As Byte          '
    Dim bolExit As Boolean      '退出比较循环的标志
    Dim intP As Integer         '
On Error GoTo errSub
    strOne = Text1.Text
    strTwo = Text2.Text
    If strOne = "" Or strTwo = "" Then Exit Sub
    If Len(strOne) <> Len(strTwo) Then
        MessageBox hwnd, "字符串长度不一致!", "系统提示", vbOKOnly + vbExclamation
        Exit Sub
    End If
    '开始按字节逐一比较字符串
    '比如:字符串:123在内存中的存储形式时:49 00 50 00 51 00 所以读取奇数位置的字符比较
    lngADDstrOne = StrPtr(strOne)   '读取字符串1的地址
    lngADDstrTwo = StrPtr(strTwo)   '读取字符串2的地址
    Do
        CopyMemory ByVal VarPtr(byteOne), ByVal (lngADDstrOne + intP), 1
        CopyMemory ByVal VarPtr(byteTwo), ByVal (lngADDstrTwo + intP), 1
        If (byteOne <> byteTwo) Then
            bolExit = True
        End If
        intP = intP + 2
    Loop Until bolExit Or (intP \ 2 > Len(strOne))
    If bolExit Then
        MessageBox hwnd, "字符串内容不一致!", "系统提示", vbOKOnly + vbExclamation
    Else
        MessageBox hwnd, "字符串内容一致!", "系统提示", vbOKOnly + vbExclamation
    End If
    Exit Sub
errSub:

End Sub

Private Sub Form_Load()
    Text1.Text = ""
    Text2.Text = ""
    Command1.Caption = "按字节比较字符串"
End Sub

------解决方案--------------------
VB的确没有提供对字符串中字符的直接操作方法,也有高人找到了把字符串当做数组进行操作的方法,详见<<Visual Basic 高级编程>>一书.不过也有一种变通的方法.即把字符串分给字节数组.利用字节数组进行比较.不过要注意,VB中字符采用Unicode编码,为两个字节.因为在数组中每两个元素代表一个字符.
------解决方案--------------------
Visual Basic高级编程:http://download.csdn.net/source/1371398
VB的字符串时UniCode格式的,每一个字符占用2个字节,所以使用数组来存储字符串的话,每个字符的高位必须是:&H00,比如:A,在内存中的存储如此:&H00 &H40

可以使用StrPtr函数来获得字符串的首地址、VarPtr获得变量的地址;CopyMemory函数可以通过地址来读取或写内存。
------解决方案--------------------
使用数组进行字符串比较的源码,呵呵。