
Aυτο θα κανω!
Συντονιστής: konnn


stamatiou έγραψε:Συγνώμη αλλά χάθηκα στα ποστ
Τώρα με τι ασχολούμαστε μπας και βοηθήσω και εγώ αν μπορώ;

if ( prompt_for_char( "θέλετε να συνεχίσετε (/ο); " ) == 'ο' )
exit( EXIT_SUCCESS );
int n = 0;
n = prompt_for_int( "Δώστε έναν ακέραιο: " );
printf( "Δώσατε: %d\n", n );

Star_Light έγραψε:stamatiou έγραψε:Συγνώμη αλλά χάθηκα στα ποστ
Τώρα με τι ασχολούμαστε μπας και βοηθήσω και εγώ αν μπορώ;
Eχω υλοποιησει τον bubble sort σε C αλλα εχω ενα θεμα με την εισοδο και πρεπει
να ξαναδιαβασω τα strings. EYχαριστω για την προθεση αλλα αμα δεν τα καταλαβω μονος μου
δεν εχει νοημα.

stamatiou έγραψε:
Και ποιος από όλους τους κώδικες έχει το πρόβλημα;
Όσο για το αν έχει νόημα βέβαι και έχει! Για αυτό έχουμε κάνει αυτό το τόπικ! Για να βοηθάμε ο ένας τον άλλον ( και όλους εμάς ο migf1)

char *message = "Message"
puts(message); 

migf1 έγραψε:To * δεν προβάλλει τα περιεχόμενου ολόκληρου του string, αλλά μονάχα τα περιεχόμενα του 1ου χαρακτήρα μέσα στο string.
Οπότε, είτε γράψουμε: message[0], είτε γράψουμε: *message, το αποτέλεσμα είναι ο χαρακτήρας: 'M'
Τώρα σε ότι αφορά την ερώτηση περί εκτύπωσης, η: puts() είναι έτσι φτιαγμένη ώστε όταν της περνάς σαν όρισμα ένα c-string, να το τυπώνει ολόκληρο, και στο τέλος να τυπώνει και μια αλλαγή γραμμής. Και σημείωσε πως της περνάς σαν όρισμα το: message και όχι το *message.
Ουσιαστικά αυτό που κάνει η συνάρτηση είναι να ξεκινάει από την αρχή του c-string: message και να τυπώνει έναν-έναν κάθε χαρακτήρα, μέχρι να βρει μηδενικό χαρακτήρα. Μόλις τον βρει, τυπώνει μια αλλαγή γραμμής και επιστρέφει.
Για αυτό και στην τεκμηρίωσή της γράφει ότι το όρισμά της πρέπει να είναι string (και όχι χαρακτήρας). Όλες οι συναρτήσεις strings είναι φτιαγμένες έτσι ώστε να περιμένουν ως όρισμα ένα c-string.
char *ptr[]="Hello";
printf("%c", *ptr);
output -> H
printf("%s", ptr);
output-> Hello
