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;
}
|