Ciao, ho un problema con il passaggio di una matrice ad una procedura ma non riesco a capire il problema,
vi posto il programma:
header.h
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void ins_dim_matrice(int &N,int &M);
void inizializza_mat(int N,int M,char a[N][M]);
void acquisisci_mat(string &k,int N,char a[N][M]);
void stampa(int N,int M,char a[N][M]);
void ricerca_occorrenza(int N,int occ,char a[N][M]);
main.cpp
#include "header.h"
main()
{
int N,M,occ;
string k;
char a[N][M];
inizializza_mat(N,M,a);
acquisisci_mat(k,N,a);
stampa(N,M,a);
ricerca_occorrenza(N,occ,a);
system("PAUSE");
return(0);
}
proc.cpp
#include "header.h"
void ins_dim_matrice(int &N,int &M)
{
do {
cout<<"inserisci la dimensione delle righe\n";
cin>>N;
if (N<0)
cout<<"il numero inserito non e' corretto\n";
}while(N<0);
cout<<"inserisci la dimensione delle colonne\n";
do{
cin>>M;
if (M<0)
cout<<"il numero inserito non e' corretto\n";
} while (M<0);
}
void inizializza_mat(int N,int M,char a[][M])
{
// inizializzo la matrice con tutti zeri
for (int k1 = 0; k1<N; k1++){
for (int kk = 0; kk<M; kk++)
a[k1][kk]='\0';
}
}
void acquisisci_mat(string& k,int N,char a[][M])
{
for (int i = 0; i<N; i++){ // acquisizione della matrice
cout<<"inserisci la riga "<<i<<" di lunghezza massima pari alla dimensione delle colonne : "; // per righe
cin>>k;
int j=0;
int app = k.length(); // prendo la lunghezza della stringa acquisita
while (j<app)
{ a[i][j] = k[j]; // inserisce carattere per carattere la stringa nella matrice
j++; }
}
}
void stampa(int N,int M,char a[][M])
{
// stampa la matrice
for (int i = 0; i<N; i++){
for (int j=0;j<M;j++)
cout<<a[i][j];
cout<<endl;
}
}
void ricerca_occorrenza(int N,int occ,char a[][M])
{
string stri;
cout<<"inserire la stringa da cercare ";
cin>>stri;
for (int i = 0; i<N; i++)
{ int conta= 0;
for (int ii = 0; ii<stri.length(); ii++)
{
if (stri[ii]==a[i][ii]) // confronta carattere per carattere la stringa da cercare
conta++; // con gli elementi della matrice
if (conta==stri.length()) // se la parola cercata è presente nella matrice aumenta un contatore
occ+=1;
}
}
if (occ>0)
cout<<"la stringa e' presente "<<occ<<" volte\n";
else
cout<<"la stringa non e' presente\n";
}
qualcuno puo' darmi una mano? grazie