Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problema nella ricerca e nella stampa
Forum - C/C++ - problema nella ricerca e nella stampa

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 18:54
Giovedì, 30/04/2009
Ho un problema nella stampa infatti se metto mamma mia mamma conta mamma una sola volta invece se metto mamma mamma mamma lo conta due nn mi legge l'ultimo termine e nn capisco perchè!!please help me

un'altra cosa potete consigliarmi come fare a far stampare la posizione in cui trova la prima volta la parola cercata grazie!!



// stringa forse.cpp : definisce il punto di ingresso dell'applicazione console.
//

#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
typedef char stringa[40];
void leggi(stringa testo,stringa parola);
void cerca(stringa testo,stringa parola,int &n);
void visualizza(stringa testo,stringa parola,int &n);

void main()
{
stringa parola,testo;
int n;
bool flag=false;
char rip;
cout<<"\n\nIserisci il testo(max 40 caratteri,con l'ultimo car.=' ') : "<<endl;
gets(testo);
do
{
    
    cout<<"\nInserisci la parola da cercare(max 40 caratteri) : "<<endl;
    cin>>parola;
    cout<<"continuare?"<<endl;
    cin>>rip;
    if(rip=='S'||rip=='s')
    {
        cerca(testo,parola,n);
        visualizza(testo,parola,n);
        flag=false;
    }
    else
    {
        flag=true;
    }

}
while(flag=true);
system("pause");
}

void cerca(stringa testo,stringa parola,int &n)
{
   int i,j,a,b;
   //conta dei caratteri
   a=strlen(parola); //cout<<"\n"<<a;
   b=strlen(testo); //cout<<"\n"<<b;
   //testo=' ';
   //b=b+1;
   //controllo
   n=0;
   cout<<"controllo :"<<n;
   for(i=0;i<b;i++)
   {
     if(testo==parola[0])  
     {
       j=1;
       while(parola[j]==testo[i+1] && i<b)
       {
         j++;
         i++;
       }
       if(j==a)
         n=n+1;
         cout<<n;
     }
   }
}

void visualizza(stringa testo,stringa parola,int &n)
{
  cout<<"Il testo digitato e' :  "<<testo<<endl;

  cout<<"La parola da confrontare e' : "<<parola<<endl;
  cout<<parola;
  cout<<"Tale parola e' presente nel testo n= "<<n<<" volte."<<endl;
}

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:12
Giovedì, 30/04/2009
Se non postate il codice in modo corretto (con il pulsante Code) non si capisce nulla e non si puo' dare nessuna risposta ...

PM Quote
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 20:20
Giovedì, 30/04/2009
// stringa forse.cpp : definisce il punto di ingresso dell'applicazione console.
//

// dai.cpp : definisce il punto di ingresso dell'applicazione console.
//

#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
typedef char stringa[40];
void leggi(stringa testo,stringa parola);
void cerca(stringa testo,stringa parola,int &n);
void visualizza(stringa testo,stringa parola,int &n);

void main()
{
stringa parola,testo;
int n;
bool flag=false;
char rip;
cout<<"\n\nIserisci il testo(max 40 caratteri,con l'ultimo car.=' ') : "<<endl;
gets(testo);
do
{
    
    cout<<"\nInserisci la parola da cercare(max 40 caratteri) : "<<endl;
    cin>>parola;
    cout<<"continuare?"<<endl;
    cin>>rip;
    if(rip=='S'||rip=='s')
    {
        cerca(testo,parola,n);
        visualizza(testo,parola,n);
        flag=false;
    }
    else
    {
        flag=true;
    }

}
while(flag=true);
system("pause");
}

void cerca(stringa testo,stringa parola,int &n)
{
   int i,j,a,b;
   //conta dei caratteri
   a=strlen(parola); //cout<<"\n"<<a;
   b=strlen(testo); //cout<<"\n"<<b;
   //testo=' ';
   //b=b+1;
   //controllo
   n=0;
   cout<<"controllo :"<<n;
   for(i=0;i<b;i++)
   {
     if(testo==parola[0])  
     {
       j=1;
       while(parola[j]==testo[i+1] && i<b)
       {
         j++;
         i++;
       }
       if(j==a)
         n=n+1;
         cout<<n;
     }
   }
}

void visualizza(stringa testo,stringa parola,int &n)
{
  cout<<"Il testo digitato e' :  "<<testo<<endl;

  cout<<"La parola da confrontare e' : "<<parola<<endl;
  cout<<parola;
  cout<<"Tale parola e' presente nel testo n= "<<n<<" volte."<<endl;
}
Codice sorgente - presumibilmente Plain Text

  1.  


PM Quote
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 20:21
Giovedì, 30/04/2009
ecco fatto ho messo il code come mi avete chiesto adesso potete darmi una mano grazie ciao ciao

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:18
Giovedì, 30/04/2009
Non mi pare ...

PM Quote
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 21:32
Giovedì, 30/04/2009
nn ti parrà però l'ho messo fai come vuoi comunque il codice èleggibile ed identato se nn ci capisci nn sò che dirti mi spiace

PM Quote
Avatar
total (Member)
Guru


Messaggi: 815
Iscritto: 16/09/2006

Segnala al moderatore
Postato alle 0:11
Venerdì, 01/05/2009
Ma piero.. un bel test del QI prima di entrare nella community?? potremmo farlo fare no??? :rotfl::rotfl::rotfl::rotfl::rotfl::rotfl::rotfl:
Scusate l'OT:ot::ot:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:07
Venerdì, 01/05/2009
Testo quotato

Postato originariamente da total:

Ma piero.. un bel test del QI prima di entrare nella community?? potremmo farlo fare no??? :rotfl::rotfl::rotfl::rotfl::rotfl::rotfl::rotfl:
Scusate l'OT:ot::ot:



Confermo l'OT ... :)

Ma ci vuole molto a capire che se non viene postato correttamente, il codice viene MODIFICATO e NON e' quello corretto ?

Boh ...

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 11:34
Venerdì, 01/05/2009
ho dato un'occhiata al tuo codice e...come al solito non ha ancora capito la differenza tra caratteri e stringhe.

Spiegami cosa vorresti fare con questo:
    if(testo==parola[0])  
quando testo è un array di char[40] mentre parola [0] è un singolo carattere.
E mi cbhiedo quindi come faccia a funzionarti...ma sei davvero sicuro di averlo
compilato?

Comunque non ho capito molto bene l'algoritmo che usi, cosa ti serve un ciclo while interno ad un ciclo for nel quale poi aumenti la variabile del for(vedi i++)???

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo