Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Πληροφορικάριος
Δραστήριο μέλος
πρεπει να χρησιμοποιησω δυο δεικτες για εναν 2Δ??εναν να τον διατρεχει οριζοντια και εναν καθετα??
#include <stdio.h>
#include <stdlib.h>
int main()
{
char name_age[2][30]={ {"Giorgos Papadopoulos 19"},
{"Ginnhs Gianakos 34"},
};
printf("%s\n",name_age+0);//εμφανίζει απο την αρχή το πρώτο string
printf("%s\n",name_age+1);//εμφανίζει απο την αρχή το δεύτερο string
printf("%c\n", *( *(name_age+0) +21) );//εμφανίζει τον 21 πρώτο χαρακτήρα απο το πρώτο string
printf("%s\n", &*( *(name_age+1) +7) );//εμφανίζει το δεύτερο string απο τον 7 χαρακτήρα
}
Έτσι μπορείς να προσπελάσεις δισδιάστατο πίνακα με δείκτες.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
#include<stdio.h>
#include<stdlib.h>
int main() {
int i,flag,j;
const int N=3;
char on_il[N],dieu[N],*ptr_on,*ptr_dieu,*ptr_il,il[1];
for(i=0; i<N; i++) {
printf("dwse to onomatepvnumo kai thn ilikia tou atomou\n");
gets(on_il);
printf("dwse th dieuthinsh kai ton taxudromiko kwdiko tou atomou\n");
gets(dieu); }
printf("dwse mia ilikia");
gets(il);
ptr_on=on_il;
ptr_il=il;
flag=0;
i=0;
j=0;
while(*ptr_on+i!='\0') {
if(*(*(ptr_on+i)+j)==*ptr_il) {
flag++;
ptr_il++;
j++; }
else
j++; }
if(flag==2) {
printf("%s",*ptr_on+i); }
i++; }
getch();
return 0; }
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Πληροφορικάριος
Δραστήριο μέλος
Αν εχω μαντέψει σωστά θέλεις να κάνεις κάτι τέτοιο:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
int main()
{
char buffer[256],**name_age; //διπλός pointer
int i;
name_age = (char **) malloc(N); // δεσμευση 3 δεικτών σε char που θα δείχνουν στις συμβολοσειρές
// δηλαδή οσες οι γραμμές του πίνακα
for(i=0; i<N; i++)
{
printf("dwse to onomatepvnumo kai thn ilikia tou atomou: ");
gets(buffer); // προσωρινή αποθήκευση μέχρι 255 χαρακτήρες
*(name_age+i) = (char *) malloc( strlen(buffer)+1 ); // δεσμευσή strlen(buffer)+1 χαρακτήρων για κάθε γραμμή
strcpy(*(name_age+i), buffer );
}
for(i=0; i<N; i++) //εμφνιση των ονομάτων
puts(*(name_age+i));
}
Αν δώσει:
Akis 23
στο name_age+0 θα δεσμέυσει 8 χαρακτήρες
Leuteris 19
στο name_age+1 θα δεσμέυσει 12 χαρακτήρες
Δες το και πές μου.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
giogWgiog
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Πληροφορικάριος
Δραστήριο μέλος
αυτο που θελω να κανω ειναι να του ζηταω και να διαβαζει μια ηλικια και να τυπωνει τα ονοματεπωνυμα ολων των ατομων που εχουν αυτη την ηλικια, με τη χρηση δεικτων και χωρις συναρτησεις...καταλαβα τον τροπο αλλα δεν ξερω πως να το κανω...θα δηλωσω διπλο pointer char **ptr_on ας πουμε??και μετα πως θα το κανω να δειχνει πανω στον πινακα...αν ειχα μονο θα εγραφα ptr_on=on_il (on_il ειναι ο πινακας με τα ονοματα και τις ηλικιες)...επισης τον διπλο pointer μπορω να τονχρησιμοποιησω και ως μονο ε???στον κωδικα που σου εστειλα πιστευεις πως ηταν σωστη η λογικη για να κανω αυτο που θέλω..?? ευχαριστω πολυ για τον χρονο σου πάντως...
O μονοδιάστατος πίνακας είναι pointer ο δισδιάστατος πίνακας είναι διπλός pointer... τι εννόεις "τον διπλο pointer να τον χρησιμοποιησω και ως μονο"??
Τα ονόματα με τις ηλικίες θα είναι σε δισδιάστατο πίνακα (πίνακα απο συμβολοσειρές) οπότε ξέχνα για λίγο τους μονους pointers.
Αν έχεις έτοιμο τον δισδιάστατο πίνακα δεν χρειάζετε να δηλώσεις αλλον pointer απλά χειρήσου τον ως διπλό δείκτη.
Απο τον κώδικα που έστειλες πριν πάντως δεν έχεις έτοιμο τίποτα, γεμίζεις τα ονόματα απο την αρχή και το κάνεις λάθος. Ο κώδικας που έστειλα στο ποηγούμενο μήνυμα κάνει σωστα την εισαγωγή τον ονομάτων...
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Πληροφορικάριος νομίζω πως κατάλαβα τι γίνετε, όπως θα διαπίστωσες και μόνος σου πριν δεν είχα χαμπάρι τι γίνετε ... Είναι επειδή μας τα εξηγεί πολύ καλά ο καθηγητής μάλλον... ευχαριστώ πολύ πάντως για την βοήθεια...!!
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
SonnY
Εκκολαπτόμενο μέλος
gcc: error: progl2.c: no such file or directory
gcc: fatal error: no input file
Μήπως γνωρίζετε τί φταίει?
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vassilis498
Διακεκριμένο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
SonnY
Εκκολαπτόμενο μέλος
για εξήγησε το μου λίγο πιο αναλυτικά αν μπορείς!
please?
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
giogWgiog
Εκκολαπτόμενο μέλος
gcc <onoma arxeiou>.c -o <onoma arxeiou>
με την εντολή -ο δίνεις ένα όνομα στο εκτελέσιμο αρχείο σου.
και μετά τρέξτο κανονικά:
./<onoma arxeiou>
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
gcc: error: progl2.c: no such file or directory
gcc: fatal error: no input file
Το μήνυμα αυτό σημαίνει ότι δεν βρίσκεσαι στο φάκελο οπου αποθήκευσες το πρόγραμμα σου.
Χρησιμοποίησε την εντολή cd ώστε να φτάσεις στον φάκελο.
Μετά κάνε ότι λέει ο giogWgiog.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
εμμα_τριντεντ
Πολύ δραστήριο μέλος
Παιδιά αντιμετωπίζω ένα πρόβλημα. Έχω εγκαταστήσει ubuntu στο pc και έχω κατεβάσει τον compiler(gcc) και προσπαθώ να φτιάξω το hello world, αλλά στο terminal μου λέει:
gcc: error: progl2.c: no such file or directory
gcc: fatal error: no input file
Μήπως γνωρίζετε τί φταίει?
Εγώ θα σου προτείνω, όπως και σε όλους τους αρχάριους, να κάνεις τη ζωή σου εύκολη.
Οπότε ξεκίνα να γράφεις κώδικα σε ένα απλό IDE όπως το Dev-C++ (ή κάποιο αντίστοιχο για linux) και αφού αποκτήσεις κάποια άνεση και δεις πως σου αρέσει, προχώρα κατευθείαν στο terminal.
Βρίσε με Βασίλη
ps. IDE = Integrated Development Environment (https://en.wikipedia.org/wiki/Integra...nt_environment)
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
πχ. αφρος 1234...μπορει να με βοηθησει καποιος??? ευαριστω εκ των προτέρων...
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
infinity
Εκκολαπτόμενο μέλος
καλημερα παιδια..!!!!γραφω ενα πργραμμα και θελω να σιγουρευτω οτι ο χρηστης μου δινει ενα αλφαριθμητικό της μορφης
πχ. αφρος 1234...μπορει να με βοηθησει καποιος??? ευαριστω εκ των προτέρων...
δεν καταλαβα τι μορφης αλφαριθμητικο εννοεις..
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Zaraki
Δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Black_Butterfly
Πολύ δραστήριο μέλος
https://www.tutorialspoint.com/ansi_c/c_isdigit.htm
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Χρήστες Βρείτε παρόμοια
-
Τα παρακάτω 0 μέλη και 2 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:Tα παρακάτω 9 μέλη διάβασαν αυτό το θέμα:
-
Φορτώνει...
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.