Discussione: [C++] Piccolo aiuto
View Single Post
Old 09-04-2007, 17:04   #1
Sh4k3!
Member
 
L'Avatar di Sh4k3!
 
Iscritto dal: Jan 2006
Messaggi: 91
[C++] Piccolo aiuto

Ciau a tutti e 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:

Codice:
#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" , però errori di sintassi non ce ne sono, l'unico problema è che quando lo mando in esecuzione si blocca sulla funzione
Codice:
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

Grazie e ancora auguri
Sh4k3! è offline   Rispondi citando il messaggio o parte di esso