Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    37

    Piccolo programma per un programmatore in erba XD

    Salve a tutti ! Anche io sono "nuovo" della programmazione ed ho un quesito rigurdante la manipolazione delle stringhe. Devo scrivere un programmino che, data una stringa in input restituisca le decorrenze della lettera 'a', ecco il listato:

    #include <iostream>
    #include <cstdlib>
    using namespace std;

    int main()
    {
    int j=0;
    char str[20];
    int contatore=0;
    cout << "Inserire Stringa" << endl;
    cin.getline(str,20);
    while (str[j]!='\0')
    {
    if (str[j]!='a')
    j++;
    else
    contatore++;
    j++;
    }
    cout << "La lettera 'a' e' presente nella stringa " << contatore << " volta/e" << endl;
    system("pause");
    return 0;
    }

    riscontro però il seguente problema :
    se inserisco come stringa: aaaaa dice che la a è presente 5 volte VERO.
    se inserisco : aggaggaa 4 volte VERO.
    se inserisco : agaaaa 4 volte FALSO.
    se inserisco : barchetta 1 volta FALSO.

    Non riesco a capire dov'è il problema, qualcuno puo aiutarmi ?

  2. #2
    Qualche aggiustatina, qua e là ...

    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	const int strlength=20;
    	char str[strlength+1];
    	int contatore=0, j=0;
    	cout<<"Inserire Stringa (max "<<strlength<<" char) > ";
    	cin.getline( str, strlength);
    	while('\0'!=str[j])
    	{
    		if ('a'==str[j])
    			contatore++;
    		j++;
    	}
    	cout<<"\nLa lettera 'a' e' presente nella stringa "<<contatore<<" volta/e"<<endl;
    	system("pause");
    	return 0;
    }
    Inserito nell'apposito tag [ CODE][ /CODE] il tuo codice
    si presenta molto meglio, non credi anche tu ?
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    37
    Grazie mille !

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    37
    Approfitto sempre di questo post (è inutile aprirne un altro visto che l'argomento è quasi lo stesso) per segnalare un altro problema alla quale non riesco a trovare soluzione.

    Praticamente devo ricevere una stringa in input che contenga anche dei numeri e:

    -sommare i numeri presenti nella stringa
    -creare una cifra composta da tali numeri (ad Es. stringa ----> we34jhu57 ---> cifra = 3457) e sommarla alla somma dei numeri presenti nella stringa.

    ecco il listato che ho elaborato io

    codice:
    //Somma numeri in una stringa
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int main()
    {
        const int strlenght=20;
        char str[strlenght+1];
        char nod[strlenght+1];
        int somma, j, i, cifra=0;
        cout << "Inserire stringa (max " <<strlenght<< " char) > ";
        cin.getline(str, strlenght);
        somma = 0; j=0; i=0;
        while ('\0'!=str[j])
        {
              if ((str[j]>='0') && (str[j]<='9'))
              {
                 somma += (int)str[j] - (int)'0';
                 nod[i] = str[j];
              }
              j++;
              i++;
        }  
        cifra = (int)nod;
        cout << "La somma dei numeri presenti nella stringa e' :"<< somma << endl;
        cout << "Il numero formato dalle cifre presenti nella scritta e' : " << cifra << endl;
        cout << "La loro somma e' : " << somma + cifra << endl;     
        system("pause");
        return 0;
    }
    l'dea era di creare un'array di appoggio dove inserire sequenzialmente i numeri trovati nella stringa e poi successivamente trasformare l'array in un intero tramite il casting. purtroppo però l'operazione di casting non funziona in modo esatto. Dove sbaglio ?

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    37
    cout << "Il numero formato dalle cifre presenti nella scritta e' : " << cifra << endl;
    scusate, non è "scritta" ma è "stringa".

  6. #6
    è inutile aprirne un altro visto che l'argomento è quasi lo stesso
    Non solo non è inutile, ma in tutti i forum ad una nuova domanda deve corrispondere un nuovo thread. Non costa nulla aprirne uno nuovo...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    37
    Ok scusatemi... non volevo sembrare Spammoso

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.