Sh4k3!
09-04-2007, 17:04
Ciau a tutti e auguri :D
Il prof. di informatica per le vacanze pasquali ci ha dato quest'esercizio:
Dato un vettore di N stringhe, costruire una funzione che dopo aver inserito N stringhe permetta di ottenere una stringa costituita da tutti i caratteri numerici e alfabetici minuscoli di tutte le stringhe.
Ho scritto il programma usando Borland C++ v3.1 senza grossi problemi, eccolo:
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#define n_max_car 20
#define n_max 20
void ins (int N, char vet_stringhe[n_max][n_max_car]);
void costr_strin (char vet_stringhe[n_max][n_max_car], int N, char stringa[n_max_car]);
void visua (char stringa[n_max_car]);
void main ()
{
char vet_stringhe_1[n_max][n_max_car], stringa_1[n_max_car];
int N_1;
ins (N_1,vet_stringhe_1);
costr_strin(vet_stringhe_1,N_1,stringa_1);
visua(stringa_1);
}
void ins (int N, char vet_stringhe[n_max][n_max_car]);
{
clrscr();
int I;
do
{
cout<<"Inserisci il numero massimo di stringhe ";
cin>>N;
}
while (!((N>=2)&&(N<=n_max)));
for (I=0;I<N;I++)
{
cout<<"Inserisci la "<<I+1<<"^ stringa del vettore ";
gets(vet_stringhe[I]);
}
}
void costr_strin (char vet_stringhe[n_max][n_max_car], int N, char stringa[n_max_car]);
{
int I,J,K;
K=0;
for(I=0;I<N;I++)
{
for(J=0;J<strlen(vet_stringhe[I]);J++)
{
if ( ((vet_stringhe[I][J]>='1')&&(vet_stringhe[I][J]<='9')) ||
((vet_stringhe[I][J]>='a')&&(vet_stringhe[I][J]<='z')) )
{
stringa[K]=vet_stringhe[I][J];
K++;
}
}
}
stringa[K]='\0';
}
void visua (char stringa[n_max_car]);
{
cout<<"La stringa formata dai caratteri numerici e dai caratteri minuscoli del vettore e' "<<stringa<<endl;
while (!kbhit());
}
come avrete notato è scritto proprio "terra terra" :D, però errori di sintassi non ce ne sono, l'unico problema è che quando lo mando in esecuzione si blocca sulla funzione if ( ((vet_stringhe[i][J]>='1')&&(vet_stringhe[i][J]<='9')) || ((vet_stringhe[i][J]>='a')&&(vet_stringhe[i][J]<='z')) )
e l'unica soluzione è quella di arrestare il programma.
Aiutatemi a capire dov'è il problema :cry:
Grazie e ancora auguri :)
Il prof. di informatica per le vacanze pasquali ci ha dato quest'esercizio:
Dato un vettore di N stringhe, costruire una funzione che dopo aver inserito N stringhe permetta di ottenere una stringa costituita da tutti i caratteri numerici e alfabetici minuscoli di tutte le stringhe.
Ho scritto il programma usando Borland C++ v3.1 senza grossi problemi, eccolo:
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#define n_max_car 20
#define n_max 20
void ins (int N, char vet_stringhe[n_max][n_max_car]);
void costr_strin (char vet_stringhe[n_max][n_max_car], int N, char stringa[n_max_car]);
void visua (char stringa[n_max_car]);
void main ()
{
char vet_stringhe_1[n_max][n_max_car], stringa_1[n_max_car];
int N_1;
ins (N_1,vet_stringhe_1);
costr_strin(vet_stringhe_1,N_1,stringa_1);
visua(stringa_1);
}
void ins (int N, char vet_stringhe[n_max][n_max_car]);
{
clrscr();
int I;
do
{
cout<<"Inserisci il numero massimo di stringhe ";
cin>>N;
}
while (!((N>=2)&&(N<=n_max)));
for (I=0;I<N;I++)
{
cout<<"Inserisci la "<<I+1<<"^ stringa del vettore ";
gets(vet_stringhe[I]);
}
}
void costr_strin (char vet_stringhe[n_max][n_max_car], int N, char stringa[n_max_car]);
{
int I,J,K;
K=0;
for(I=0;I<N;I++)
{
for(J=0;J<strlen(vet_stringhe[I]);J++)
{
if ( ((vet_stringhe[I][J]>='1')&&(vet_stringhe[I][J]<='9')) ||
((vet_stringhe[I][J]>='a')&&(vet_stringhe[I][J]<='z')) )
{
stringa[K]=vet_stringhe[I][J];
K++;
}
}
}
stringa[K]='\0';
}
void visua (char stringa[n_max_car]);
{
cout<<"La stringa formata dai caratteri numerici e dai caratteri minuscoli del vettore e' "<<stringa<<endl;
while (!kbhit());
}
come avrete notato è scritto proprio "terra terra" :D, però errori di sintassi non ce ne sono, l'unico problema è che quando lo mando in esecuzione si blocca sulla funzione if ( ((vet_stringhe[i][J]>='1')&&(vet_stringhe[i][J]<='9')) || ((vet_stringhe[i][J]>='a')&&(vet_stringhe[i][J]<='z')) )
e l'unica soluzione è quella di arrestare il programma.
Aiutatemi a capire dov'è il problema :cry:
Grazie e ancora auguri :)