Stringhe C++

di il
8 risposte

Stringhe C++

Ciao ragazzi sono nuovo di questo sito, e da 4 giorno che lavoro su un esercizio ma non riesco a farlo,ve lo posto e vediamo se potete aiutarmi.
Date due stringhe s1 ed s2 di lunghezza qualsiasi,scrivere una funzione che verifichi se s2 è una sotto stringa si s1(cioe se s2 è contenuta in s1)restituendo il valore intero -1 se non lo è, oppure un valore positivo che indichi la posizione di inizio della corrispondenza tra gli elementi di s2 e s1.

8 Risposte

  • Re: Stringhe C++

    Prova a fare una bella lista di cosa faresti tu come essere umano ,per iniziare...
  • Re: Stringhe C++

    Discutiamo di una tua soluzione e degli errori eventuali ...
  • Re: Stringhe C++

    GiggiSk8 ha scritto:


    Prova a fare una bella lista di cosa faresti tu come essere umano ,per iniziare...
    si per prima cosa chiedo:
    • chiedo di dare la prima parola
      chiedo di inserire kla seconda parola
      poi confronto le due stringhe e confronto se s2 e una sotto stringa di s1
      ...
    poi mi blocco
  • Re: Stringhe C++

    oregon ha scritto:


    Discutiamo di una tua soluzione e degli errori eventuali ...
    io avevo provato cosi ma non mi funziona cosi.
    #include <iostream>

    using namespace std;
    int fLunghezza(char stringa[])
    {
    int a=0;
    while(stringa[a] != '\0')
    {
    a++;
    }
    return a;
    }
    int main()
    {
    char s1[15],s2[15];
    double s3[15];
    int l1,l2,b,a,h;
    h=0;
    cout<<"Prima stringa "<<endl;
    cin>>s1;
    cout<<"Seconda stringa "<<endl;
    cin>>s2;
    l1=fLunghezza(s1);
    l2=fLunghezza(s2);
    for(a=0;a<=l1;a++)
    {
    for(b=0;b<=l2;b++)
    {
    if(s1[a]==s2)
    {
    s3[a]=a;
    }
    }
    }
    for(a=0;a<=l1;a++)
    {
    if(s3[a]!=0)
    {
    cout<<a<<"\t";
    h=1;
    }
    }
    if(h!=1)
    {
    cout<<"Il valore è -1";
    }
    system("PAUSE");
    return 0;
    }
  • Re: Stringhe C++

    Gabri1996 ha scritto:


    poi confronto le due stringhe e confronto se s2 e una sotto stringa di s1
    Un po' troppo riassuntivo ... cerca di spiegarlo più nel dettaglio
    Pendi un foglio di carta e scrivi due parole , prova a capire cosa fai senza rendertene conto per vedere se una e dentro l'altra
  • Re: Stringhe C++

    Gabri1996 ha scritto:


    restituendo il valore intero -1 se non lo è, oppure un valore positivo che indichi la posizione di inizio della corrispondenza tra gli elementi di s2 e s1.
    Non è quello fa il tuo codice

    A cosa ti serve s3?
  • Re: Stringhe C++

    GiggiSk8 ha scritto:


    Gabri1996 ha scritto:


    restituendo il valore intero -1 se non lo è, oppure un valore positivo che indichi la posizione di inizio della corrispondenza tra gli elementi di s2 e s1.
    Non è quello fa il tuo codice

    A cosa ti serve s3?
    con s3 mi serve per scrivere la terza riga,intesa come la riga risultante
  • Re: Stringhe C++

    Stringhe in C++ per me sono le std::string. Non so dove studi ma di sicuro hanno una concezione diversa del C++.
    std::string s1("pippo");
    std::string s2("altropippo");
    size_t pos = s1.find(s2);
    if(pos != std::string::npos)
    {
        std::cout << "s2 trovata in s1 nella posizione:" << pos;
    }
    N.B:: Codice non testato.
Devi accedere o registrarti per scrivere nel forum
8 risposte