Programma doppie in una stringa

di il
5 risposte

Programma doppie in una stringa

Il programma mi conta sempre 0 doppie. Il problema credo ci sia nella stringa "c= c*c". Questo è il mio codice
                                                                          

/* Programma che legge da standard input una sequenza di caratteri terminata da un punto e determina e stampa il mumero di "doppie" presenti
   nella sequenza, dove per "doppie" si intende una sequenza di due caratteri consecutivi qualsiasi (ma diversi da spazio e a capo)
   identici. */

#include <iostream>
using namespace std;
int main()
{
 char c;                     //  carattere
 int doppie = 0;                 //  doppie
 
 cout << "\nInserisci una sequenza di caratteri terminata da .\n" << endl;
 cin >> c;

 while (c != '.') {
                     if (c == c*c && c != ' ' && c != '\n')
                     ++ doppie;
                     cin >> c;
                  }

 cout << "Il numero di doppie inserite e'" << doppie << "\n" << endl;
 
 return 0;
}  

5 Risposte

  • Re: Programma doppie in una stringa

    Ma cosa è

    c*c

    ??
  • Re: Programma doppie in una stringa

    Sicuramente ho sbagliato ma ho pensato che c*c fosse il doppio di un carattere
  • Re: Programma doppie in una stringa

    C contiene un carattere ... la doppia è quando c "precedente" è uguale a c "attuale"
  • Re: Programma doppie in una stringa

    Quindi devo impostare una nuova variabile: char carattere_precedente ?
  • Re: Programma doppie in una stringa

    Aggiornamento: con questo codice mi conta solo alcune vocali. Allego anche foto dell'esecuzione:
                                         
    /* Programma che legge da standard input una sequenza di caratteri terminata da un punto e determina e stampa il mumero di "doppie" presenti
       nella sequenza, dove per "doppie" si intende una sequenza di due caratteri consecutivi qualsiasi (ma diversi da spazio e a capo)
       identici. */
    
    #include <iostream>
    using namespace std;
    int main()
    {
     char c, c_prec = ' ';                     //  carattere
     int doppie = 0;                 //  doppie
    
     cout << "\nInserisci una sequenza di caratteri terminata da .\n" << endl;
     cin >> c >> c_prec;
    
     while (c != '.') {
                         if (c == c_prec && c != ' ' && c != '\n')
                         ++ doppie;
                         cin >> c;
                      }
    
     cout << "Il numero di doppie inserite e'" << doppie << "\n" << endl;
     
     return 0;
    }  
    
    http://imageshack.com/a/img911/8823/YOy6ly.pn
Devi accedere o registrarti per scrivere nel forum
5 risposte