Ciao a tutti!
Mi serve un po' del vostro aiuto..
/*
*C'è una matrice A di dimensione MxN di caratteri ed un array B di lunghezza L=MxN. In ogni ennupla di B ci sono solo maiuscoli o solo minuscoli.
*Bisogna scrivere un programma che copi in A i valori di B inserendo ogni ennupla in una riga in modo che nelle prime righe siano inserite le ennuple con caratteri maiuscolo e nelle ultime righe le ennuple con caratteri minuscoli..
Ex: M=5,N=3,L=15
B="lol PAL YES kit POP"
A=
PAL
YES
POP
lol
kit
*/
Sto cercando di risolvere questo esercizio sui array bidimensionali. E sono riuscito ad identificare quali sono le ennuple di caratteri maiuscoli e quelli minuscoli. Ma nel momento in qui queste ennuple devono essere copiate nella matrice, non so come si deve applicare i vari cicli in maniera adatta. Qualcuno mi può dare una mano con la funzione copia..?
Ecco quello che sono riuscito a fare fino ad ora..:
codice:
#include<stdio.h>
int colmax;
void copia(char A[][colmax],char B[],int M,int N,int i){
//Qui vengono copiati i caratteri del B in A ... ?!?help!
}
void controlla(char A[][colmax],char B[],int M,int N,int L){
int i,colonna,riga;
//Cerca le ennuple maiuscoli
for(i=0;i<L;i+=N){
if(B[i]>='A' && B[i]<='Z'){
copia(A,B,M,N,i);
}
}
//Cerca le ennuple minuscoli
for(i=0;i<L;i+=N){
if(B[i]>='a' && B[i]<='z'){
copia(A,B,M,N,i);
}
}
//Stampa matrice A
for(riga=0;riga<M;riga++){
for(colonna=0;colonna<N;colonna++){
printf("%c ",A[riga][colonna]);
}
printf("\n");
}
}
int main(){
int M=5,N=3,L=M*N;
char B[]="casMARSONpalESA";
char A[M][N];
colmax=N;
controlla(A,B,M,N,L);
printf("\n\n");
system("pause");
return 0;
}
Qualsiasi tipo di aiuto verrà apprezzato tanto!
Grazie!