Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Non ti serve copiare la stringa e invertirla, né eliminare spazi e/o punteggiatura.
    Prova a vedere se capisci come funziona questo spezzone di codine:
    codice:
    #include <iostream>
    #include <cstring>
    #include <cctype>
    
    
    using namespace std;
    
    
    int main() {
        char s[256];
        cout << "Inserisci una frase: ";
        cin.getline(s, 256);
        bool pal = true;
        for(int i = 0, j = strlen(s) - 1; pal && (i < j); ) {
            bool si = isalpha(s[i]), sj = isalpha(s[j]);
            if(si && sj) {
                pal = pal && (toupper(s[i]) == toupper(s[j]));
                /* in questo caso sarebbe equivalente
                    pal = toupper(s[i]) == toupper(s[j]);
                    in quanto nella condizione d'uscita compare pal.
                    Se così non fosse la forma in questo commento
                    sarebbe scorretta. */
                ++i; --j;
            } else {
                if(!si) ++i;
                if(!sj) --j;
            }
        }
        cout << (pal ?  "Palindromi": "Non palindromi") << endl;
        return 0;
    }
    Ultima modifica di Scara95; 07-03-2015 a 11:44 Motivo: precisazione sul codice
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.