Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    4

    [C++] Sostituzione di un carattere in una stringa

    salve
    vi ringrazio in anticipo,potreste aiutarmi a risolvere questo programma?
    la consegna è di sostituire le lettere"a" in una stringa con il carattere "@".
    questo è il programma sbagliato che ho svolto

    codice:
    #include <iostream>
    #include <string>
    using namespace std;
    int change ()
    {
     string a;
     cout<<"inserisci una stringa di massimo 100 caratteri"<<endl;
     cin>>a;
     if(a.length()>100)
     {
      cout<<"errore la stringa doveva essere di 100 caratteri"<<endl;
      return 1;
     }
     int x=0;
        string c;
     for (int i=0;i<a.length();i++)
     {int y=i;
      if (a[i]=='@')
      { string b[y-a.length()];
       
       for (y;y<a.length();y++)
       {
                a[y+1]='\n';
       b[x]=a[y+1];
       x++;
       
       }
       a[i+1]='\n';
       
      }
         else 
         {   c[i]=a[i];
             
                 }
             cout<<c[i];
     }
     
    }
    int main()
    {
     change();
     system("pause");
     return 0;
    }
    Ultima modifica di alka; 17-08-2015 a 17:23 Motivo: Aggiunto il tag CODE per la formattazione del codice

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Comincia specificando cosa ha il tuo programma che non va, senza costringere gli utenti ad analizzarlo, compilarlo ed eseguire per scoprire l'errore.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    4
    Mi compila ma non mi fa la sostituzione.Nel ciclo for l'else funziona ma è l'if che non va perché non mi fa la sostituzione del carattere "@" e non capisco dove ho sbagliato

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Ma che stavi cercando di fare? A livello logico dico, come cercavi di risolvere. Perché basta per ogni carattere i fare:
    codice:
     if(a[i]=='a')
      a[i]='@';
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    4
    ciao volevo dirti che la tua soluzione è sbagliata perchè se scrivo @gg@ al posto di darmi agga mi scive gg questo comunque è il codice secondo la tua correzione

    codice:
    #include <iostream>#include <string>
    using namespace std;
    int change ()
    {
     string a;
     cout<<"inserisci una stringa di massimo 100 caratteri"<<endl;
     cin>>a;
     if(a.length()>100)
     {
      cout<<"errore la stringa doveva essere di 100 caratteri"<<endl;
      return 1;
     }
     int x=0;
        string c;
     for (int i=0;i<a.length();i++)
     {
      if (a[i]=='a')
      { a[i]=='@';
      }
         else 
         {   c[i]=a[i];
             
                 }
             cout<<c[i];
     }
     
    }
    int main()
    {
     change();
     system("pause");
     return 0;
    }
    Ultima modifica di alka; 18-08-2015 a 18:17 Motivo: Aggiunto il tag CODE

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Guarda meglio la seconda riga perché l'hai copiata male (ed evidentemente non capita).

    E poi butta tutta la parte relativa alla string c e utilizza e visualizza solo la string a
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.