Chiarimento codice per palindromi

di il
3 risposte

Chiarimento codice per palindromi

Ho questo codice che ho trovato,analizzato e modificato leggermente.Serve per controllare se una stringa è palindroma.

#include <iostream>
#include <stdlib.h>
using namespace std;


int main()
{
    string s = "";
    cout<<"Inserisci una stringa per vedere se e' palindrome"<<endl;
    cin>>s;
    bool palindroma = true;
    for(int sx=0, dx=s.length()-1; sx<dx; sx++, dx--)
    {
        if(s[sx] != s[dx])
        {
           palindroma = false;
           break; 
        }
    }
    
    if(palindroma)
        cout<<"La stringa e' palindroma"<<endl;
    else
        cout<<"La stringa non e' palindroma"<<endl;

    system("pause");
    return 0;
}
Quel che non capisco è quando vado a confrontare il carattere in prima posizione con l'ultimo e poi il secondo col penultimo ecc.. Non capisco come fà a confrontare i caratteri se si stratta di una stringa e non un vettore di char.Anche qusta per caso è una proprietà intrinseca della classe stting? Potreste chiarirmi questo aspetto per favore?

3 Risposte

  • Re: Chiarimento codice per palindromi

    Si, l'operatore [] viene ridedinito ed è possibile accedere ai singoli caratteri del buffer di string.

    Perché non studi la classe string al posto di andarci per tentativi?
  • Re: Chiarimento codice per palindromi

    Ok, beh non avendo studiato ancora la OOP e le classi ho preferito non metterci piede, però visto che mi capita spesso di usarla ci guarderò bene.Grazie per il chiarimento.
  • Re: Chiarimento codice per palindromi

    Perdonami ma io non ti capisco. Se non hai studiato oop e classi, che scrivi a fare codice c++? Quelle cose si studiano PRIMA di cominciare a trattare codice C++.

    Altrimenti utilizza il C e quello che ti mette a disposizione il C.
    Non si studia come stai facendo tu, è un metodo del tutto sbagliato.
Devi accedere o registrarti per scrivere nel forum
3 risposte