Esercizio con funzioni c++

di il
25 risposte

25 Risposte - Pagina 2

  • Re: Esercizio con funzioni c++

    Ho corretto così ..può andare?
    
    int Maggiore(int r,string *p)
    {
     int riga=0;
     int lung=(p)->length();
     for(int i=1;i<r;i++)
     {
      if ((p+i)->length()>lung)
       {
           lung=(p+i)->length();
           riga=i;
       }
     }
     return riga;
    }
    
    grazie davvero..: )
  • Re: Esercizio con funzioni c++

    Sì, anche se si potrebbe "ottimizzare" se la for la scrivessi così ... ma non è importante
    
    for(int i=1;i<r;i++)
    {
      int lu=(p+i)->length();
      if (lu>lung)
       {
           lung=lu;
           riga=i;
       }
    }
    
  • Re: Esercizio con funzioni c++

    Perfetto..grazie...il secondo punto l'ho fatto il procedimento è lo stesso...mentre per trovare la prima lettera maiuscola e le lettere uguali consecutive non mi viene come fare a scorrere nella stringa del vettore carattere per carattere :S perchè in questo modo con il puntatore al vettore non posso operare sui singoli caratteri giusto?
  • Re: Esercizio con funzioni c++

    Si tratta solo di studiare un po' le caratteristiche della classe string ... che è quello che pensa di ottenere il docente con questi esercizi ...

    Puoi usare il metodo

    substr

    della string per estrarre una stringa (anche un carattere) da un'altra string. Ad esempio
    
    string prova = "ciao";
    cout << prova.substr(2, 1) << endl;
    
    oppure puoi utilizzare il metodo

    c_str()

    per accedere all'array della stringa con un classico puntatore. Ad esempio
    
    string prova = "ciao";
    const char *p = prova.c_str();
    
    cout << p[2] << endl;
    
    accedi al terzo carattere della stringa.
  • Re: Esercizio con funzioni c++

    Quindi per utilizzare il secondo metodo devo fare il puntatore al puntatore che punta al vettore ..e poi devo incrementare entrambi i puntatori uno fino a che non finisce e la stringa , l' altro fino a che non finiscono le righe...
  • Re: Esercizio con funzioni c++

    Sarebbe meglio il primo metodo ... comunque ...
  • Re: Esercizio con funzioni c++

    Con il secondo metodo niente non ci riesco... poi ho fatto così per le maiuscole.(primo metodo) e insomma più o meno...
    int Maiusc(int r,string *p)
    {
    int riga;
    for (int i=0;i<r;i++)
    {
    string stringa=*(p+i);
    string car=stringa.substr(0,1);
    if ((car>="a")&&(car<="z"))
    {
     cout<<"minuscole"<<endl;
    }
    else
        {
          riga=i;
        }
    }
    return riga;
    }
    
    grazie
  • Re: Esercizio con funzioni c++

    Quasi ... il ciclo con i accede alle stringhe, ne serve un altro per i singoli caratteri.
  • Re: Esercizio con funzioni c++

    La traccia chiede che deve essere la prima lettera maiuscola, perciò non l' ho fatto il ciclo per i singoli caratteri..tanto mi serve solo il primo carattere
    mentre per trovare i caratteri consecutivi uguali si
    ho fatto così
    int LettUgual(int r,string *p)
    {
    int riga;
    int j=0;
    for (int i=0;i<r;i++) //righe
    {
    string stringa=*(p+i);
    const char *pp=stringa.c_str();
    do
    {
    if (*(pp+j)==*(pp+j+1))
    {
        riga=i;
        j++;
    }
    else
    {
        j++;
    }
    }
    while(*(pp+j)!='\0');
    j=0;
    }
    return riga;
    }
    solo che non stampa le prime righe ma le ultime...grazie =)
  • Re: Esercizio con funzioni c++

    azzurra_13 ha scritto:


    la traccia chiede che deve essere la prima lettera maiuscola, perciò non l' ho fatto il ciclo per i singoli caratteri..tanto mi serve solo il primo carattere
    Ah ... ok
  • Re: Esercizio con funzioni c++

    Grazie mille
Devi accedere o registrarti per scrivere nel forum
25 risposte