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 Button1_Click()
+
  '''Public''' Sub Main()
+
 
   Dim s1, s2, diversi As String
+
   Dim s1, s2, sp, diversi As String
   Dim j, a As Byte
+
   Dim i, c As Integer
+
 
   s1 = "abc0101"
+
   s1 = "hola gamberos"
   s2 = "abd0111"
+
   s2 = "hoLa gamberos del foro"
+
 
   For j = 1 To Len(s1)
+
   For i = 1 To Max(Len(s1), Len(s2))
  <FONT color=#006400>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font>
+
  <FONT Color=gray>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font>
     If Mid(s1, j, 1) <> Mid(s2, j, 1) Then
+
     If Mid(s1, i, 1) <> Mid(s2, i, 1) Then
  <FONT color=#006400>' ''...allora viene incrementata la variabile "a" per determinare il totale dei caratteri differenti...''</font>
+
<FONT Color=gray>' ''...allora viene incrementata la variabile "c" per determinare il totale dei caratteri differenti...''</font>
       Inc a
+
       Inc c
  <FONT color=#006400>' ''...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:''</font>
+
  <FONT Color=gray>' ''...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:''</font>
       diversi = diversi & " " & Mid(s1, j, 1) & Mid(s2, j, 1)
+
       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:"; diversi
+
  Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:\n\ns1  s2\n------\n"; diversi
    Print "per un totale di "; a & " caratteri."
+
  Print "\nper un totale di "; c & " caratteri."
+
 
 
  '''End'''
 
  '''End'''

Versione delle 12: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