Altro esercizio banale in c

ing.pietro
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;
}

Risposte
TomSawyer1
Direi solo il contenuto della prima stringa, dato che aggiungi la seconda alla prima.

ing.pietro
scusa non ho capito perchè aggiungi la seconda alla prima..

allora anche la funzione strcpyt accoda la seconda alla prima riga ?

ing.pietro
scusa non riga ma stringa

TomSawyer1
OOOPS, non so per quale motivo ho letto strcat. Niente, sono un idiota.

ing.pietro
quindi come si fa?

ing.pietro
crook come faccio a risolvere l'esercizio?

ing.pietro
crook non me la dai un mano?

mi puoi dire almeno la differenza che cè tra la funzione strcpyt e strcat???

Studente Anonimo
Studente Anonimo
Secondo me è un errore di digitazione, anche perché ci sono altri errori di sintassi nell' istruzione:

strcpyt(stringa1, "stringa2));

Tra l'altro una simile funzione non esiste nella libreria standard del C e se cerchi sia con Google che con Yahoo la parola strcpyt compaiono solo pochissimi documenti (il primo è proprio il tuo tema d'esame), alcuni dei quali sono misteriosamente spariti e in altri strcpyt è una variabile.

A meno che non sia una macro o una funzione di una qualche libreria che vi siete scritti voi assieme al Prof. durante il corso. :)

TomSawyer1
Neanche su msdn si trova qualcosa su strcpyt. Controlla il testo che hai scritto qui con il testo originale..

ing.pietro
anchio ho controllato ..la funzione strcpyt nn esiste

ma cè stato secondo me un errore di digitazione cè una" t" di troppo
perchè la funzione strcpy esiste ..
voi la conoscete?

TomSawyer1
Sì, copia una stringa in un'altra stringa.

Ripeto: ci sono differenze tra il testo originale e quello con cui hai aperto il thread?

Studente Anonimo
Studente Anonimo
"ing.pietro":
ma cè stato secondo me un errore di digitazione cè una" t" di troppo
perchè la funzione strcpy esiste ..

Ah, ecco, quindi si tratta solo di errori di sintassi; a questo punto il programma si corregge sostituendo soltanto l'istruzione

strcpyt(stringa1, "stringa2));

con

strcpy(stringa1, stringa2);

il resto del codice è corretto e il programma stamperà la stringa "Paperino".
Il solito trappolone d'esame... :-D

Studente Anonimo
Studente Anonimo
"Crook":
ci sono differenze tra il testo originale e quello con cui hai aperto il thread?

Il tema d'esame a cui fa riferimento ing.pietro dovrebbe essere quello che ho linkato sopra. ;)

ing.pietro
no non cè alcuna differenza!!

ing.pietro
si stan il tema d'esame è proprio quello che hai linkato tu...
ma cmq mi sembra strano perchè di solito in quegli esercizi bisogna allargare il contenimento delle stringhe ...e allora volevo capire che differenza c era tra la strcat del primo esercizio che ho postato, con la funzione che compariva in questo ultimo

sei sicuro che si deve solamente togliere quella t??

Studente Anonimo
Studente Anonimo
"ing.pietro":
mi sembra strano perchè di solito in quegli esercizi bisogna allargare il contenimento delle stringhe...

Beh, in effetti anche a me sembra troppo facile, ma ti assicuro che non ci sono altri errori nel programma. Basta controllare con carta e penna la situazione delle due variabili in memoria e vedrai che non ci sono problemi di mancanza di spazio.


e allora volevo capire che differenza c era tra la strcat del primo esercizio che ho postato, con la funzione che compariva in questo ultimo

Scusa, in che senso? In quest'ultimo esercizio non compare strcat()...


sei sicuro che si deve solamente togliere quella t??

Sì, la "t", le virgolette e una delle due parentesi tonde di chiusura.

ing.pietro
va be dai fa lo stesso ..grazie per l'aiuto domani ho l'esame

speriamo bene

saluto

Studente Anonimo
Studente Anonimo
Comunque rileggendo il thread più attentamente, forse la svista di Crook potrebbe indicare un'altra soluzione dell'esercizio.

Correggere la funzione strcpyt() in strcat(), il che avrebbe anche più senso, perché si ricadrebbe nello stesso caso degli altri esercizi: cioè la variabile stringa1 non è abbastanza capiente per contenere le due stringhe "Pluto" e "Paperino"...

"ing.pietro":
va be dai fa lo stesso ..grazie per l'aiuto domani ho l'esame

Di niente, in bocca al lupo! :smt023

ing.pietro
crepi

hypnotizer
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)..


penso sia cosi' ovunque, e personalmente penso sia giusto in quanto sono due materie che fanno sviluppare tantissimo la logica qualora l'esercizio non sia di tipo meramente meccanico. il problema che hai postato tu e' di tipo logico infatti.
piuttosto mi lascia basito che almeno nella mia universita' fisica 1 presenta gli integrali e le derivate fin dalla prima lezione, mentre analisi 1, che si svolge in contemporanea, li spiega molto dopo. oppure che in fisica 2 vengono utilizzati gli integrali di volume quando in analisi 2 vengono usati solo quelli di superficie e anche in questo caso molto dopo.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.