Autore Topic: [C] Come calcolare la lunghezza di una stringa senza usare strlen()  (Letto 881 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:[C] Come calcolare la lunghezza di una stringa senza usare strlen()
« Risposta #1 il: 27 Marzo 2020, 15:18:13 »
https://www.iprogrammatori.it/forum-programmazione/cplusplus/come-calcolare-lunghezza-una-stringa-senza-usare-strlen-t42275.html
Citazione
Il mio professore ci ha dato il compito di un programma che possa leggere una stringa e dire se questa è palindroma o no.
qui viene il problema, io fin ora ho sempre usato strlen() per leggere la lunghezza di una stringa, ma il prof ci impediti di usarlo e leggere la stringa in un altro modo

Per parole e piccole frasi senza punteggiatura, in (puro) Gambas si potrebbe risolvere così:
Codice: [Seleziona]
Public Sub Main()

  Dim s As String = "Eran i mesi di seminare"
  ' Dim s As String = "Questo non è un palindromo"
  ' Dim s As String = "EREGGERE"
  ' Dim s As String = "INGEGNI"
  Dim s1 As String
  Dim ss1, ss2 As String[]

  s1 = Lower(s)
  ss1 = RitornaCaratteri(s1)
  If IsNull(ss1) Then Return
  ss2 = ss1.Copy()
  ss2.Reverse()
  For i As Integer = 0 To ss1.Max
    If ss1[i] <> ss2[i] Then
      Print Quote(s); " non è un palindromo"
      Return
    Endif
  Next
  Print Quote(s); " è un palindromo"

End

Private Function RitornaCaratteri(s As String) As String[]

  Dim c As String
  Dim i As Integer
  Dim ss As New String[]

  If s Then
    Do
      Inc i
      c = Mid(s, i, 1)
      If c = " " Then Continue
      If IsNull(c) Then Break
      ss.Push(c)
    Loop
    Return ss
  Endif

End


O anche...  :P

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro