Altro esercizio banale in c
4) Individuare l’errore nel seguente programma e spiegare come si corregge
#include
#include
int main(){
char stringa1[10], stringa2[10];
strcpy(stringa1, “Sabato”);
strcpy(stringa2, “Domenica”);
strcat(stringa1, stringa2);
printf(“%s”,stringa1);
return 0;
}
#include
#include
int main(){
char stringa1[10], stringa2[10];
strcpy(stringa1, “Sabato”);
strcpy(stringa2, “Domenica”);
strcat(stringa1, stringa2);
printf(“%s”,stringa1);
return 0;
}
Risposte
Ti invito a riflettere sulla funzione strcat.
Come sicuramente saprai, questa funzione accoda la seconda stringa alla prima.
Quindi stringa1 dovrebbe contenere "SabatoDomenica", ma questo non e' possibile.
Perche' ?
A presto,
Eugenio
Come sicuramente saprai, questa funzione accoda la seconda stringa alla prima.
Quindi stringa1 dovrebbe contenere "SabatoDomenica", ma questo non e' possibile.
Perche' ?
A presto,
Eugenio
non ti seguo.....mi puoi dire solo come si corregge
Mi dispiace non accontentarti, non credo che sarebbe istruttivo.
Se non si trattasse di compiti ma di una bella figura con una tipa, potrei anche pensarci su ! Hehe...
Via gli scherzi, se ti puo' interessare posso aiutarti a capire, ma non chiedermi di piu'.
A presto,
Eugenio
Se non si trattasse di compiti ma di una bella figura con una tipa, potrei anche pensarci su ! Hehe...
Via gli scherzi, se ti puo' interessare posso aiutarti a capire, ma non chiedermi di piu'.
A presto,
Eugenio
dai eugenio questo è l'unico esame che nn mi va giu
dammi una mano!!!??
dammi una mano!!!??
Ok !
stringa1 e stringa2 sono due contenitori di massimo 9 caratteri.
Dichiarando un buffer di caratteri [10] significa che puo' contenere max 9 caratteri perche' uno e' dedicato al fine stringa (NIL).
Quindi se possono contenere max. 9 lettere cosa noti di strano ?
Eugenio
stringa1 e stringa2 sono due contenitori di massimo 9 caratteri.
Dichiarando un buffer di caratteri [10] significa che puo' contenere max 9 caratteri perche' uno e' dedicato al fine stringa (NIL).
Quindi se possono contenere max. 9 lettere cosa noti di strano ?
Eugenio
se possono contenere al massimo 9 caratteri l'errore sarà che ne contengono piu di 9...
però stringa 1 contiene sabato e stringa 2 contiene domenica : hanno meno di 9 caratteri!!
scusa ma non ci capisco tanto
però stringa 1 contiene sabato e stringa 2 contiene domenica : hanno meno di 9 caratteri!!
scusa ma non ci capisco tanto
ma dopo strcat, stringa1 dovrebbe contenere "SabatoDomenica" quindi ?
Sei riuscito a correggere il programma ?
stringa 1 dovrebbe contenere sabatodomenica ma non può perchè al massimo ne puo contenere 9...
e quindi come dovrei correggere ??
nn è che me lo puoi scrivere corretto..
dai che ormai ci sto saltando fuori(almeno credo)
e quindi come dovrei correggere ??
nn è che me lo puoi scrivere corretto..
dai che ormai ci sto saltando fuori(almeno credo)
Bravo!
Le soluzioni sono tante, ma una di primo livello potrebbe essere quella di aumentare la capacita' di contenimento di stringa1.
Eugenio
Le soluzioni sono tante, ma una di primo livello potrebbe essere quella di aumentare la capacita' di contenimento di stringa1.
Eugenio
quindi io metterei anziche 10 estenderei a 15
poi non devo piu modificare altro..
poi non devo piu modificare altro..
Sì, è così. Ma questo programma ha un senso o è fatto solo per trovare l'errore?
@Ing.Pietro:
Corretto!
@Crook:
Credo che sia solo un listato didattico per trovare l'errore.
Corretto!
@Crook:
Credo che sia solo un listato didattico per trovare l'errore.
scusatemi ancora (da me l'informatica viene data per scontata piu che l'analisi matematica)(sai io nn lho mai fatta e ho un po di problemi)..
in quest altro programma l'errore invece ?
#include
#include
int main(){
char stringa1[15], stringa2[5];
strcpy( stringa1, “Sabato”);
strcpy(stringa2, “Domenica”);
strcat(stringa1, stringa2);
printf(“%s”,stringa1);
return 0;
}
dovrebbe essere in stinga 2 si deve mettere anche li 15
in quest altro programma l'errore invece ?
#include
#include
int main(){
char stringa1[15], stringa2[5];
strcpy( stringa1, “Sabato”);
strcpy(stringa2, “Domenica”);
strcat(stringa1, stringa2);
printf(“%s”,stringa1);
return 0;
}
dovrebbe essere in stinga 2 si deve mettere anche li 15
Vedi ing.pietro l'esercizio e totalmente analogo al precedente.
Ora comprendo ancora meglio le tue difficolta'.
Dimmi un po', a quale scopo ti serve risolvere questi esercizi ?
Ti chiedo questo perche' se non ha minimamente a che fare con la tua preparazione professionale, o con la scuola, ti rispondo direttamente con la soluzione, altrimenti mi impegno ad insegnarti le basi della programmazione.
Eugenio
Ora comprendo ancora meglio le tue difficolta'.
Dimmi un po', a quale scopo ti serve risolvere questi esercizi ?
Ti chiedo questo perche' se non ha minimamente a che fare con la tua preparazione professionale, o con la scuola, ti rispondo direttamente con la soluzione, altrimenti mi impegno ad insegnarti le basi della programmazione.
Eugenio
ok non voglio essere falso
allora io faccio ingegneria ambientale e ho un esame d'informatica (materia che assolutamente non mi piace (forse anche perchè nn la capisco)..
questa materia non mi interessa anche perchè sono sicuro che nel lavoro che andrò a fare non mi servirà a nulla..e quindi voglio dedicarmici il meno possibile lasciando spazio alla fisica e alla matematica (anche se gli esami di queste materie gli ho gia passati mi piacerebbe continuare a studiarle ora che ho del tempo libero)
quindi se mi vuoi aiutarmi ti ringrazio molto se invece non te la senti sei libero di fare quello che vuoi
allora io faccio ingegneria ambientale e ho un esame d'informatica (materia che assolutamente non mi piace (forse anche perchè nn la capisco)..
questa materia non mi interessa anche perchè sono sicuro che nel lavoro che andrò a fare non mi servirà a nulla..e quindi voglio dedicarmici il meno possibile lasciando spazio alla fisica e alla matematica (anche se gli esami di queste materie gli ho gia passati mi piacerebbe continuare a studiarle ora che ho del tempo libero)
quindi se mi vuoi aiutarmi ti ringrazio molto se invece non te la senti sei libero di fare quello che vuoi
Beh...il motivo della presenza di questo esame richiede che tu debba avere un minimo di preparazione. Giusto ?
Pero' comprendo le tue motivazioni e ti daro' i suggerimenti.
L'errore e' che stringa2 puo' contenere al massimo 4 caratteri e si vuole assegnargli la stringa "Domenica".
Se tu volessi sono sempre disponibile ad insegnarti a svolgere questi compiti da solo. Ovviamente dopo il mio rientro dalle vacanze.
A presto,
Eugenio
Pero' comprendo le tue motivazioni e ti daro' i suggerimenti.
L'errore e' che stringa2 puo' contenere al massimo 4 caratteri e si vuole assegnargli la stringa "Domenica".
Se tu volessi sono sempre disponibile ad insegnarti a svolgere questi compiti da solo. Ovviamente dopo il mio rientro dalle vacanze.
A presto,
Eugenio
eugenio sei tornato dalle vacanze?
spero di si visto che io ho l'esame mercoledi e mi servirebbe lultimo aiuto
F Spiegare l’errore nel seguente programma e dire come si corregge
#include
#include
int main(){
char stringa1[10], stringa2[10];
strcpy( stringa1, “Pluto”);
strcpy(stringa2, “Paperino”);
strcpyt(stringa1, “stringa2));
printf(“%s”,stringa1);
return 0;
}
la differenza rispetto agli altri è la funzione strcpyt
come devo fare qua ?
grazie ciao
spero di si visto che io ho l'esame mercoledi e mi servirebbe lultimo aiuto
F Spiegare l’errore nel seguente programma e dire come si corregge
#include
#include
int main(){
char stringa1[10], stringa2[10];
strcpy( stringa1, “Pluto”);
strcpy(stringa2, “Paperino”);
strcpyt(stringa1, “stringa2));
printf(“%s”,stringa1);
return 0;
}
la differenza rispetto agli altri è la funzione strcpyt
come devo fare qua ?
grazie ciao
Non è lo stesso errore dell'altro? Cioè l'array che deve essere allargato.
quindi devo aumentare il contenimento delle due stringhe?