0

1. 次のプログラムは、ユーザーから 2 つの入力、つまり A と B を取得します
。 2. B から部分文字列を検索します。
3. 最後に結果を出力します。

私のコードは

    Dim a As String
    Dim b As String
    a = InputBox("Enter First String", a)
    b = InputBox("Enter 2nd String", b)
        Dim i As Integer
        Dim j As Integer = 0
        Dim k As Integer = 0
        Dim substr As Integer = 0
        For i = 0 To a.Length - 1

            If a(i) = b(j) Then
                j += 1

                If b(j) = 0 Then
                MsgBox("second string is substring of first one")
                    substr = 1
                    Exit For
                End If
            End If
        Next i
        For i = 0 To b.Length - 1
            If b(i) = a(k) Then
                k += 1
                If a(k) = 0 Then
                MsgBox(" first string  is substring of second string")
                    substr = 1
                    Exit For
                End If
            End If
        Next i
        If substr = 0 Then
        MsgBox("no substring present")
        End If
End Sub

コンパイル中に、次のデバッグ エラーが発生します。

                                           Line Col
Error 1 Operator '=' is not defined for types 'Char' and 'Integer'. 17  24  
Error 2 Operator '=' is not defined for types 'Char' and 'Integer'. 27  24  
4

1 に答える 1

0

次の行が原因です。

If b(j) = 0 Then

If a(k) = 0 Then

Asa(k)b(j)はどちらも Char データ型 (文字列を文字の配列と考えてください) ですが、それらを int (0) と比較しようとしています。

部分文字列を探していて、VB.NET を使用している場合IndexOfは、非常に単純な例として、メソッドを使用してみることができます。

If a.IndexOf(b) > -1 Then
    MsgBox("b is a substring of a")
ElseIf b.IndexOf(a) > -1 Then
    MsgBox("a is a substring of b")     
Else
    MsgBox("No substring found")
End

VBAを使用している場合も使用できますが、InStrこれを使用すると、文字列は0インデックスではなく1インデックスになると思います(VB.NETのように)ので、チェックは次のようになります。

If InStr(a,b) > 0 Then
    MsgBox("b is a substring of a")
ElseIf InStr(b,a) > 0 Then
    MsgBox("a is a substring of b")     
Else
    MsgBox("No substring found")
End
于 2013-04-10T16:54:18.247 に答える