Differenze tra le versioni di "Confrontare i caratteri di due stringhe"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
Potremo procedere utilizzando la funzione ''Mid(...)'', e l'intento sarà quello di | Potremo procedere utilizzando la funzione ''Mid(...)'', e l'intento sarà quello di | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
− | + | ||
− | Dim s1, s2, diversi As String | + | Dim s1, s2, sp, diversi As String |
− | Dim | + | Dim i, c As Integer |
− | + | ||
− | s1 = " | + | s1 = "hola gamberos" |
− | s2 = " | + | s2 = "hoLa gamberos del foro" |
− | + | ||
− | For | + | For i = 1 To Max(Len(s1), Len(s2)) |
− | <FONT | + | <FONT Color=gray>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font> |
− | If Mid(s1, | + | 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 | + | Inc c |
− | <FONT | + | <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 | Endif | ||
Next | 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''' | '''End''' |
Versione delle 11:54, 1 ago 2017
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(...), e l'intento sarà quello di
Public Sub Main() Dim s1, s2, sp, diversi As String Dim i, c As Integer s1 = "hola gamberos" s2 = "hoLa gamberos del foro" 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