Confrontare i caratteri di due stringhe: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (2 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
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. | 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 ''Mid(... | Potremo procedere utilizzando la funzione nativa "Mid()": | ||
''' | Public Sub Main() | ||
Dim s1, s2, diversi As String | Dim s1, s2, sp, diversi As String | ||
Dim | Dim i, c As Integer | ||
s1 = "abcd efghi lmno" | |||
s2 = "abcr pqghillmno" | |||
For i = 1 To Max(Len(s1), Len(s2)) | |||
<FONT Color=gray>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font> | |||
If Mid(s1, i, 1) <> Mid(s2, i, 1) Then | |||
<FONT Color=gray>' ''...allora viene incrementata la variabile "c" per determinare il totale dei caratteri differenti...''</font> | |||
Inc c | |||
<FONT Color=gray>' ''...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:''</font> | |||
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 | |||
Versione attuale delle 16:43, 23 giu 2023
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