Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [C++] Aiuto per stringhe

    Scusate abbiamo introdotto le stringhe molto velocemente e per casa avrei questi 4 esercizi. QUalcuno mi puo' aiutare non nel farli già pronti ma per capire come impostare? Ad esempio il prendere due stringhe come parametri.. non ho ben capito queste stringhe e non sono un fulmine in informatica..... veramente sono in difficoltà .Grazie a tutti.

    a)Prende una stringa come parametro e scambia la prima metà con la seconda;
    b)Riceve due stringhe come parametri e restituisce true se sono uguali, false altrimenti;
    c)Riceve una stringa come parametro e, se essa ha lunghezza >=2, scambia il primo carattere con l'ultimo e stampa la stringa, altrimenti non fa nulla;
    d)Prende come parametro una stringa ed un carattere e restituisce il numero di occorrenze del carattere nella stringa
    Nel b pensavo a qulcosa come questo ma ho apura di fare una cavolata...:
    codice:
    bool stringa (const string a0, const string a1) 
    {   
        if (a0 != a1) }
    return false;
    }
    Ho letto le poche pagine della dispensa con la definizione di una stringa che è una sequenza di caratteri, come "Hello" e la spiegazioneche in C++ le stringhe sono racchiuse tra virgolette doppie, che non sono considerate parte della stringa.
    Poi l'istruzione getline(cin, nome) che legge tutti i caratteri digitati fino a che si preme INVIO e genera una stringa che contiene tutti i caratteri e che viene memorizzata nella variabile nome.
    Poi un facsimile di programma tipo questo sotto.. IO pero' non riesco a fare queste esercizi dettati (non erano stati presi dal libretto) con queste nozioni..
    codice:
    1 #include <iostream>
    2 #include <string>
    3 using namespace std;
    4
    5 //INIZIO
    6 int main ()
    7 {
    8 //definisci una variabile stringa
    9 string nome;
    10
    11 //chiedi e leggi il nome
    12 cout << "\nInserisci il tuo nome => ";
    13 cin >> nome;
    14
    15 //scrivi il contenuto della variabile nome
    16 cout << "\nla variabile nome contiene " << nome;
    17
    18 //fine programma
    19 cout << "\n\nFine ";
    20 system ("pause");
    21 return 0;
    Ultima modifica di MisterMPG; 16-02-2019 a 10:35

  2. #2
    codice:
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
    
    bool stringa (const string a0, const string a1)
    {
        if (a0 != a1)
    return false;
    }
    }
    ma non va...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma la funzione sta dentro al main?

    Non è una questione di string ma non conosci quale sia la struttura di un programma C/C++
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Ero in confusione solo che anche cosi' non va perchè non mi da' false o true o con 0 e 1....

    codice:
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    bool stringequal(string a,string b)
    {
      int q=a.length();
      int w=b.length();
      if(q==w)
      {
        for(int i=0;i<q;i++)
        {
            if(a[i]!=b[i])
            {
               cout<<"falsa"<<endl;
               return false;
               
            }
        }
    
      return true;
    
      }
      else
      {
      return false;
      }
    }
    int main()
    {
        string a;
        string b;
        cin>>a;
        cin>>b;
        stringequal(a,b);
    }
    Ultima modifica di MisterMPG; 17-02-2019 a 17:05

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Le stringhe si possono confrontare ... cosa è tutto quel codice inutile?

    codice:
    bool stringequal(const string &s1, const string &s2)
    {
        return (s1==s2);
    }

    Il risultato nel main

    codice:
    int main()
    {
       string a;
       string b;
        
       cin>>a;
       cin>>b;
        
        cout << stringequal(a,b) << endl;
    
        return(0);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Le stringhe si possono confrontare ... cosa è tutto quel codice inutile?

    codice:
    bool stringequal(const string &s1, const string &s2)
    {
        return (s1==s2);
    }

    Il risultato nel main

    codice:
    int main()
    {
       string a;
       string b;
        
       cin>>a;
       cin>>b;
        
        cout << stringequal(a,b) << endl;
    
        return(0);
    }
    Non so quel & che hai messo, non so usarlo (sono alle superiori).
    Posso mettere anche solo cosi'?
    codice:
    bool stringequal( string s1, string s2)
    Ultima modifica di MisterMPG; 17-02-2019 a 17:37

  7. #7
    Puoi dirmi cosa ne pensi di queste?

    codice:
    //Prende come parametro una stringa ed un carattere e restituisce il numero
    // di occorrenze del carattere nella stringa.
    
    #include <iostream>
    //#include <string>
    #include <ctime>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    
    
    string occorrenze (string a, char b)
    {
    
        int dim=a.length();
        int conta=0;
    
        for (int i=0; i<dim; i++)
    {
        if(a[i]==b)
    {
        conta++;
    }
    }
     cout<< conta;
    
    
    }
    int main ()
    {
    
        string a;
        cin>> a;
        char b;
        cin>> b;
        cout << occorrenze(a, b);
    
        return 0;
    }
    codice:
    //Riceve una stringa come parametro e, se essa ha lunghezza >=2, scambia il primo carattere
    //con l'ultimo e stampa la stringa, altrimenti non fa nulla;
    
    
    
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    
    string stringa (string a)
    {
    int dim = a.length ();
    if (dim >=2)
    {
    int scambio= a[0];
    a[0]=a[dim-1];
    a[dim-1]=scambio;
    }
    return a;
    }
    
    int main()
    {
    
    // sdrand(time(NULL));
    string a;
       cin>>  a;
       cout<<stringa(a);
       return 0;
       }
    codice:
    //Prende una stringa come parametro e scambia la prima metà con la seconda;
    
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    
    
    string stringa (string a)
    {
    
        int dim=a.length();
        int b=dim/2;
        int c=dim/2+1;
        if (dim%2==0)
    {
        for (int i=0; i<dim/2; i++)
    {
        int scambio =a[i];
        a[i]=a[b];
        a[b]= scambio;
        b++;
    }
    return a;
    }
    else
    {
        for (int i=0; i<dim/2; i++)
        {
            int scambio=a[i];
            a[i]=a[c];
            a[c]=scambio;
            c++;
    
        }
        return a;
    }
    }
    
    
    int main ()
    {
    
        string a;
        cin>> a;
        cout << stringa (a);
        return 0;
    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quote Originariamente inviata da MisterMPG Visualizza il messaggio
    Non so quel & che hai messo, non so usarlo (sono alle superiori).
    Posso mettere anche solo cosi'?
    codice:
    bool stringequal( string s1, string s2)

    Sì, per ora puoi farlo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Per le occorrenze, la funzione deve restituire un intero (ovvero la variabile cont) e la visualizzazione con la cout NON va nella funzione ma nel main.

    Per lo scambio, quali proprietà/metodi conosci delle stringhe oltre a length ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Sì, per ora puoi farlo ...
    Se volessi la parola "false " o "true" oltre a 0 o 1 come imposto nel main seguendo il tuo code?

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.