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

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

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

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

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

μια προχειρη λυση :

Spoiler: show
Κώδικας: Επιλογή όλων
#include<stdio.h>
#define N 255
#define M 255
char f_cp(char s1[N] , char s2[M]);

int main()

{

char s1[N]="";
char s2[M]="";
char r;

printf("Dwse mia sumvoloseira");
fgets(s1,255,stdin);
sscanf(s1,"%c",s1);
printf("Dwse mia sumvoloseira");
fgets(s2,255,stdin);
sscanf(s2,"%c",s2);

r=f_cp(s1,s2);
printf("To apotelesma einai: %c",r);

return 0;
}
char f_cp(char s1[N] , char s2[M])
{
int i;
char r;

for(i=0; s2[i]!='\0'; i++)
{
s1[i]=s2[i];
s1[i]='\0';
r=s1[i];
}

return r;
}


Εβγαλα το τριτο ορισμα (n) ε δεν την παλεψα με μπερδεψε... απλα ο κωδικας δεν μου δινει αποτελεσμα... μολις τον φτιαξω
θα βαλω και το n μετα... παω να τσιμπησω κατι και επανερχομαι...

νηστικο αρκουδι δεν προγραμματιζει.
Γνώσεις ⇛ 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++

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

καποια βλακεια εχω κανει με την τιμη επιστροφης πως γινεται να βαζω ολοκληρο πινακα σε μια char μεταβλητη μονο.....

EDIT : Κοιταξα μολις το παραδειγμα που δινει για την strncpy μηπως και τυχον ο ενας εκ των 2 πινακων θα πρεπει να ειναι τελειως empty
Γνώσεις ⇛ 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, 20:31

Ώπα λάθος το είπα! Τελικά τις συγκρίνει σε μήκος όχι αν είναι ίδιες!
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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

stamatiou έγραψε:Ώπα λάθος το είπα! Τελικά τις συγκρίνει σε μήκος όχι αν είναι ίδιες!


http://www.cplusplus.com/reference/clib ... g/strncpy/

βαλε το παραδειγμα στον editor σου και τρεξτο να δεις τι κανει
Γνώσεις ⇛ 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, 20:44

stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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

Στην strcmp όταν λέμε συγκρίνει εννούμε σε μήκος;
Επίσης στο strcpy ουσιαστικά παίρνει τους πρώτους n χαρακτήρες από μια string, σβήνει όλη την άλλη και τους βάζει εκεί;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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

Έκανα τελικά και εγώ μια πρόχειρη υλοποίηση της strcpy
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

char *mystrcpy(char *destination,int n,char *source) {
int i;
for(i=0;i<n;i++) {
if(source[i]) {
destination[i] = source[i];
}else {
for(;i < n;i++) {
destination[i] = 0;
}
destination[i+1] = '\0';
return destination;
}
}
destination[i] = '\0';
return destination;
}

int main(void) {
char source[] = "Hello World";
char destination[] = "Hello Everybody";
mystrcpy(destination,5,source);
puts(destination);
return 0;
}
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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

stamatiou έγραψε:
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

char *mystrcpy(char *destination,int n,char *source) {
int i;
for(i=0;i<n;i++) {
if(source[i]) {
destination[i] = source[i];
}else {
for(;i < n;i++) {
destination[i] = 0;
}
destination[i+1] = '\0';
return destination;
}
}
destination[i] = '\0';
return destination;
}

int main(void) {
char source[] = "Hello World";
char destination[] = "Hello Everybody";
mystrcpy(destination,5,source);
puts(destination);
return 0;
}


Το χεις τρέξει αυτο καθόλου να δεις τι βγάζει? :P
Γιατι σε μενα βγαζει ενα σκετο hello αρα δεν κανει την δουλεια που θελουμε....
Γνώσεις ⇛ 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++

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

οπα λαθος αυτος ο κωδικας ειναι για την σύγκριση? Γιατι δεν εχεις βαλει καταλληλο περιγραφικο ονομα στην συναρτηση.
Γνώσεις ⇛ 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, 22:00

Τελικά ποια κάνουμε από τις 2; :lol:

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

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

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