PDA

View Full Version : aiutino piccolo programmino in C


robootx
10-06-2003, 23:43
dov'è l'errore???

//esercizio Capitolo 5 n°5 del testo "Programmare in C" della McGraw-Hill

//data la seguente assegnazione esercizio="1234567890abcdefghilmnopqrstuvzABCDEFGHILMNOPQRSTUVZ";
//spostare i caratteri numerici dopo le lettere minuscole e prima delle lettere maiuscole, in modo che
//la stringa assuma il valore "abcdefghilmnopqrstuvz1234567890ABCDEFGHILMNOPQRSTUVZ" senza utilizzare
//costanti che identificano la posizione dei caratteri, ma reperire dinamicamente tali posizioni, in modo
//che il programma abbia una valenza più generale.

#include <stdio.h>
#include <string.h>

char esercizio[100]="1234567890abcdefghilmnopqrstuvzABCDEFGHILMNOPQRSTUVZ";
char app;
int i,j;

main()
{
for (i=0,j=i+1; (((esercizio[i]>='1') && (esercizio[i]<='9'))
&& ((esercizio[j]>='a') && (esercizio[j]<='z'))
&& (esercizio[i]!='\0')); i++,j++)
{
app=esercizio[i];
esercizio[i]=esercizio[j];
esercizio[j]=app;
}



//visualizza la stringa risultante
printf("\nLa stringha adesso ha questa forma :\n\n%s\n\n",esercizio);
scanf("%d",i);

}

jolanda_81
11-06-2003, 19:47
Originally posted by "robootx"

dov'è l'errore???

//esercizio Capitolo 5 n°5 del testo "Programmare in C" della McGraw-Hill

//data la seguente assegnazione esercizio="1234567890abcdefghilmnopqrstuvzABCDEFGHILMNOPQRSTUVZ";
//spostare i caratteri numerici dopo le lettere minuscole e prima delle lettere maiuscole, in modo che
//la stringa assuma il valore "abcdefghilmnopqrstuvz1234567890ABCDEFGHILMNOPQRSTUVZ" senza utilizzare
//costanti che identificano la posizione dei caratteri, ma reperire dinamicamente tali posizioni, in modo
//che il programma abbia una valenza più generale.

#include <stdio.h>
#include <string.h>

char esercizio[100]="1234567890abcdefghilmnopqrstuvzABCDEFGHILMNOPQRSTUVZ";
char app;
int i,j;

main()
{
for (i=0,j=i+1; (((esercizio[i]>='1') && (esercizio[i]<='9'))
&& ((esercizio[j]>='a') && (esercizio[j]<='z'))
&& (esercizio[i]!='\0')); i++,j++)
{
app=esercizio[i];
esercizio[i]=esercizio[j];
esercizio[j]=app;
}



//visualizza la stringa risultante
printf("\nLa stringha adesso ha questa forma \n\n%s\n\n",esercizio);
scanf("%d",i);

}

1) se inizializzi un vettore devi usare

char vet[]="prova";

oppure

char vet[6]; // successivamente lo riempi ad esempio con la funzione
// strncpy()..vedi il manuale C per la corretta sintassi )

2) che razza di for hai fatto!?!?!? Io farei

for(i=0;esercizio[i]!=NULL;i++){ // questo ciclo scandisce tutto il vettore

if (esercizio[i]>='1' && esercizio[i]<='9'){ //controlla che sia un numero
// cerca la prima lettera minuscola
// scambia il numero con la lettera
}
}

PS scusa se non te lo faccio ma ho fretta! Devo andare a vedere l'Italia!