Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 29 Αύγ 2011, 19:06

Star_Light έγραψε:ΟΚ! θΑ ΞΑΝΑΔΟΘΕΙ η εκφωνηση? η ειναι αυτη της σελιδας 83 ? :crazy:

Η εκφώνηση είναι να φτιάξουμε 2 συναρτήσεις, μια που θα λειτουργεί ακριβώς όπως η strncpy() και μια που θα λειτουργεί ακριβώς όπως η strncmp(). :)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 29 Αύγ 2011, 19:13

migf1 έγραψε:
Star_Light έγραψε:ΟΚ! θΑ ΞΑΝΑΔΟΘΕΙ η εκφωνηση? η ειναι αυτη της σελιδας 83 ? :crazy:

Η εκφώνηση είναι να φτιάξουμε 2 συναρτήσεις, μια που θα λειτουργεί ακριβώς όπως η strncpy() και μια που θα λειτουργεί ακριβώς όπως η strncmp(). :)


EEEM και αυτες οι 2 ειναι συναρτησεις της στανταρ C? Να της ψαξω στο GNU manual?
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 29 Αύγ 2011, 19:17

Star_Light έγραψε:
migf1 έγραψε:
Star_Light έγραψε:ΟΚ! θΑ ΞΑΝΑΔΟΘΕΙ η εκφωνηση? η ειναι αυτη της σελιδας 83 ? :crazy:

Η εκφώνηση είναι να φτιάξουμε 2 συναρτήσεις, μια που θα λειτουργεί ακριβώς όπως η strncpy() και μια που θα λειτουργεί ακριβώς όπως η strncmp(). :)


EEEM και αυτες οι 2 ειναι συναρτησεις της στανταρ C? Να της ψαξω στο GNU manual?

Η strcmpy παίρνει ορίσματα 2 strings και ένα int i (το οποίο συνήθως είναι το len των strings) και ελέγχει αν είναι ίσες μέχρι το len, και ναι είναι και οι δύο στο string.h
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 29 Αύγ 2011, 19:34

Οκ δηλαδη η strncmp συγκρίνει num φορες τα 2 strings? Δηλαδη αν εχω num = 4
Και string1 = hell
string2 = heyy

τοτε οι συγκρισεις θα ειναι (h,h) (e,e) (l,y) (l,y)

τι γινεται σε περιπτωση που το string1 εχει μεγαλυτερο μηκος απο το 2 και το num ειναι πχ 10?

ας πουμε string = hello
string2=hi

η συγκριση θα γινει μεχρι το l και θα σταματησει ?

ή σταματαει μολις τα 2 ειναι διαφορετικα ή συναντησει το τελος της συμβολοσειρας ?

Στο μεταξυ στην strncpy λεει => "bytes that follow a null byte are not copied" τι εννοει??? bytes που ακολουθούνται με το null byte? δηλαδη τον '\0' ? δεν αντιγράφονται.... γιατι το τονίζει αυτο υπηρχε περιπτωση να αντιγραφουν ποτε ?
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 29 Αύγ 2011, 19:45

Star_Light έγραψε:Οκ δηλαδη η strncmp συγκρίνει num φορες τα 2 strings? Δηλαδη αν εχω num = 4
Και string1 = hell
string2 = heyy

τοτε οι συγκρισεις θα ειναι (h,h) (e,e) (l,y) (l,y)

τι γινεται σε περιπτωση που το string1 εχει μεγαλυτερο μηκος απο το 2 και το num ειναι πχ 10?

ας πουμε string = hello
string2=hi

η συγκριση θα γινει μεχρι το l και θα σταματησει ?

ή σταματαει μολις τα 2 ειναι διαφορετικα ή συναντησει το τελος της συμβολοσειρας ?

Στο μεταξυ στην strncpy λεει => "bytes that follow a null byte are not copied" τι εννοει??? bytes που ακολουθούνται με το null byte? δηλαδη τον '\0' ? δεν αντιγράφονται.... γιατι το τονίζει αυτο υπηρχε περιπτωση να αντιγραφουν ποτε ?

Εγώ το μόνο που ξέρω είναι ότι το strncpy μόλις φτάσει στο lιοστό θα σταματήσει και όταν βρει το '\0' Για τα υπόλοιπα ας περιμένουμε τον migf1 :D
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 29 Αύγ 2011, 19:48

Βασικά είναι πανεύκολο να τσεκάρεις τι κάνει η κάθε μια, αφού μπορείς να τις χρησιμοποιήσεις σε ένα πρόγραμμά σου με διάφορα test-cases για να καταλάβεις τι ακριβώς κάνουν. Κατόπιν θα προσπαθήσεις να φτιάξεις δυο συναρτήσεις με άλλα ονόματα, που θα συμπεριφέρονται ακριβώς όπως αυτές :)

ΥΓ. Ναι, κανονικά! Τσέκαρε και το GNU manual ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 29 Αύγ 2011, 19:51

Βασικα ειναι λογικο διοτι καθε char ειναι 1 byte επομενως απλα θα αντιγραψει n chars και στο λεει σαν n bytes.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 29 Αύγ 2011, 19:53

Star_Light έγραψε:
...
Στο μεταξυ στην strncpy λεει => "bytes that follow a null byte are not copied" τι εννοει??? bytes που ακολουθούνται με το null byte? δηλαδη τον '\0' ? δεν αντιγράφονται.... γιατι το τονίζει αυτο υπηρχε περιπτωση να αντιγραφουν ποτε ?

Σου διευκρινίζει πως αν το n είναι μεγαλύτερο από το τρέχον μήκος του πηγαίου string, τότε η αντιγραφή σταματάει μόλις τελειώσουν οι χαρακτήρες του πηγαίου string, κι ας είναι λιγότεροι από n.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 29 Αύγ 2011, 19:58

Για να μη χαθούμε, ας ξεκινήσουμε πρώτα με την strncmp() που νομίζω είναι πιο εύκολη :)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 29 Αύγ 2011, 20:04

migf1 έγραψε:Για να μη χαθούμε, ας ξεκινήσουμε πρώτα με την strncmp() που νομίζω είναι πιο εύκολη :)


εγω ξεκινησα απο την αλλη..... και εφτιαξα εναν κωδικα....... μα τι κωδικα!
Να τον βλεπει ο προγραμματιστης και να ξεχναει και αυτα που ξερει!@!!!!!!!!

αααααααχαχαχαχαχ xD
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι