Confrontare i caratteri di due stringhe
Vai alla navigazione
Vai alla ricerca
Il caso è quello in cui, avendo due stringhe di eguale lunghezza di caratteri, vogliamo verificare quali e quanti caratteri sono eventualmente diversi all'interno delle predette stringhe.
Potremo procedere utilizzando la funzione nativa "Mid()":
Public Sub Main()
Dim s1, s2, sp, diversi As String
Dim i, c As Integer
s1 = "abcd efghi lmno"
s2 = "abcr pqghillmno"
For i = 1 To Max(Len(s1), Len(s2))
' Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...
If Mid(s1, i, 1) <> Mid(s2, i, 1) Then
' ...allora viene incrementata la variabile "c" per determinare il totale dei caratteri differenti...
Inc c
' ...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:
sp = Mid(s1, i, 1)
If IsNull(sp) Then sp = Chr(32)
diversi &= "\n" & sp & " | " & Mid(s2, i, 1)
Endif
Next
Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:\n\ns1 s2\n------\n"; diversi
Print "\nper un totale di "; c & " caratteri."
End
oppure si potranno usare le due variabili stringa, confrontando i loro indici:
Public Sub Main()
Dim s1, s2, sp, diversi As String
Dim i, c As Integer
s1 = "abcd efghi lmno"
s2 = "abcr pqghillmno"
For i = 1 To Max(Len(s1), Len(s2)) - 1
If s1[i, 1] <> s2[i, 1] Then
Inc c
sp = s1[i, 1]
If IsNull(sp) Then sp = Chr(32)
diversi &= "\n" & sp & " | " & s2[i, 1]
Endif
Next
Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:\n\ns1 s2\n------\n"; diversi
Print "\nper un totale di "; c & " caratteri."
End