Δημοσιεύτηκε: 18 Ιουν 2011, 13:51
από migf1
Έχεις δίκιο για το '\n' του fgets() ! Αυτή είναι όντως η εξήγηση :)

Για το άλλο που ρώτησες, δεν ξέρω αν κατέβασες την Ξερή από το άλλο νήμα, αν την κατέβασες τότε στο αρχείο s.c η συνάρτηση s_reverse() κάνει αυτό ακριβώς που ζητάς (τη βάζω και σε spoiler παρακάτω μόνη της).

Spoiler: show
Κώδικας: Επιλογή όλων

// ***********************************************************
char *s_reverse(char *s)
{
if ( !s ) // early exit
return NULL;

char *cp1, *cp2, dummy;

cp2 = s + strlen(s) - 1; // set cp2 at end of s
for (cp1=s; cp1 < cp2; cp1++, cp2--) {
dummy = *cp1;
*cp1 = *cp2;
*cp2 = dummy;
}

return s;
}


Όπου (αν) κολλήσεις πες μου.

medigeek έγραψε:
migf1 έγραψε:
αλλά δουλεύει και με τις 2 τιμές, δεν ξέρω γιατί :lol:

Το fgets συμπεριλαμβάνει το χαρακτήρα \n απ'ό,τι κατάλαβα.
Και ένας άλλος χαρακτήρας είναι το \0 στο τέλος του string, γι' αυτό έβαλα - 2 χαρακτήρες στο τέλος.

Αυτό που δεν καταφέρνω είναι να φτιάξω το function backwards() να κάνει return κάποιο text string. :( Καμιά ιδέα;
Βασικά θέλω στο main να εκτελέσω:
Κώδικας: Επιλογή όλων
printf("Backwards: %s", backwards(s))