30/04/09 16:54
matteog
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=b+1;
//controllo
n=0;
cout<<"controllo :"<<n;
for(i=0;i<b;i++)
{
if(testo[i]==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;
}
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=b+1;
//controllo
n=0;
cout<<"controllo :"<<n;
for(i=0;i<b;i++)
{
if(testo[i]==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;
}
aaa