Βοήθεια στην Γλώσσα C

bessy_94

Νεοφερμένος

Η bessy_94 αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 13 μηνύματα.
οχι ειναι στον ιδιο πινακα σαν ενα αλφαριθμητικο.....πχ Γιαννης Παπαδοπουλος 23...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
πρεπει να χρησιμοποιησω δυο δεικτες για εναν 2Δ??εναν να τον διατρεχει οριζοντια και εναν καθετα??

Code:
#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 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

bessy_94

Νεοφερμένος

Η bessy_94 αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 13 μηνύματα.
@Πληροφοριακάριος ευχαριστω πολυυ...καταλαβα πως θα το κανω αλλα τωρα αντιμετωπίζω ενα αλλο προβλημα...εγραψα τον παρακατω κωδικα και στο if μου λεει οτι ειναι ακυρο το επιχείρημα...το εχω γραψει λαθος??

Code:
#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 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Δεν έχεις δηλώσει διπλό pointer..γενικά εχει πολλά λάθη

Αν εχω μαντέψει σωστά θέλεις να κάνεις κάτι τέτοιο:

Code:
#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 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

bessy_94

Νεοφερμένος

Η bessy_94 αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 13 μηνύματα.
αυτο που θελω να κανω ειναι να του ζηταω και να διαβαζει μια ηλικια και να τυπωνει τα ονοματεπωνυμα ολων των ατομων που εχουν αυτη την ηλικια, με τη χρηση δεικτων και χωρις συναρτησεις...καταλαβα τον τροπο αλλα δεν ξερω πως να το κανω...θα δηλωσω διπλο pointer char **ptr_on ας πουμε??και μετα πως θα το κανω να δειχνει πανω στον πινακα...αν ειχα μονο θα εγραφα ptr_on=on_il (on_il ειναι ο πινακας με τα ονοματα και τις ηλικιες)...επισης τον διπλο pointer μπορω να τονχρησιμοποιησω και ως μονο ε???στον κωδικα που σου εστειλα πιστευεις πως ηταν σωστη η λογικη για να κανω αυτο που θέλω..?? ευχαριστω πολυ για τον χρονο σου πάντως... :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

giogWgiog

Εκκολαπτόμενο μέλος

Ο giogWgiog αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Φοιτητής του τμήματος Επιστήμης Υπολογιστών Κρήτης (Ηράκλειο) και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 130 μηνύματα.
Δεν ξέρω αν έχει αναφερθεί πιο πρίν αλλά γιατί δεν δοκιμάζεις να το κάνεις με δομές;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
αυτο που θελω να κανω ειναι να του ζηταω και να διαβαζει μια ηλικια και να τυπωνει τα ονοματεπωνυμα ολων των ατομων που εχουν αυτη την ηλικια, με τη χρηση δεικτων και χωρις συναρτησεις...καταλαβα τον τροπο αλλα δεν ξερω πως να το κανω...θα δηλωσω διπλο pointer char **ptr_on ας πουμε??και μετα πως θα το κανω να δειχνει πανω στον πινακα...αν ειχα μονο θα εγραφα ptr_on=on_il (on_il ειναι ο πινακας με τα ονοματα και τις ηλικιες)...επισης τον διπλο pointer μπορω να τονχρησιμοποιησω και ως μονο ε???στον κωδικα που σου εστειλα πιστευεις πως ηταν σωστη η λογικη για να κανω αυτο που θέλω..?? ευχαριστω πολυ για τον χρονο σου πάντως... :)

O μονοδιάστατος πίνακας είναι pointer ο δισδιάστατος πίνακας είναι διπλός pointer... τι εννόεις "τον διπλο pointer να τον χρησιμοποιησω και ως μονο"??

Τα ονόματα με τις ηλικίες θα είναι σε δισδιάστατο πίνακα (πίνακα απο συμβολοσειρές) οπότε ξέχνα για λίγο τους μονους pointers.

Αν έχεις έτοιμο τον δισδιάστατο πίνακα δεν χρειάζετε να δηλώσεις αλλον pointer απλά χειρήσου τον ως διπλό δείκτη.
Απο τον κώδικα που έστειλες πριν πάντως δεν έχεις έτοιμο τίποτα, γεμίζεις τα ονόματα απο την αρχή και το κάνεις λάθος. Ο κώδικας που έστειλα στο ποηγούμενο μήνυμα κάνει σωστα την εισαγωγή τον ονομάτων...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

bessy_94

Νεοφερμένος

Η bessy_94 αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 13 μηνύματα.
giogWgiog δεν έχουμε μάθει ακόμα είναι παρακάτω....
Πληροφορικάριος νομίζω πως κατάλαβα τι γίνετε, όπως θα διαπίστωσες και μόνος σου πριν δεν είχα χαμπάρι τι γίνετε ...:P Είναι επειδή μας τα εξηγεί πολύ καλά ο καθηγητής μάλλον... :D ευχαριστώ πολύ πάντως για την βοήθεια...!!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

SonnY

Εκκολαπτόμενο μέλος

Ο SonnY αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής. Έχει γράψει 273 μηνύματα.
Παιδιά αντιμετωπίζω ένα πρόβλημα. Έχω εγκαταστήσει ubuntu στο pc και έχω κατεβάσει τον compiler(gcc) και προσπαθώ να φτιάξω το hello world, αλλά στο terminal μου λέει:
gcc: error: progl2.c: no such file or directory
gcc: fatal error: no input file
Μήπως γνωρίζετε τί φταίει?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
δε βρίσκει το όρισμα που του βαλες. βεβαιώσου ότι δεν έκανες κάνα typo κατά την κλήση και πως την ώρα που καλείς τον gcc είσαι στο ίδιο directory με το πηγαίο σου
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

SonnY

Εκκολαπτόμενο μέλος

Ο SonnY αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής. Έχει γράψει 273 μηνύματα.
εεεεε....φίλε vassilis498, το hello world προσπαθώ να φτιάξω..Programmer level : Below 0
για εξήγησε το μου λίγο πιο αναλυτικά αν μπορείς!

please?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

giogWgiog

Εκκολαπτόμενο μέλος

Ο giogWgiog αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Φοιτητής του τμήματος Επιστήμης Υπολογιστών Κρήτης (Ηράκλειο) και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 130 μηνύματα.
Αφού δουλεύεις στο terminal δοκίμασε το εξής όταν το κάνεις compile:

gcc <onoma arxeiou>.c -o <onoma arxeiou>

με την εντολή -ο δίνεις ένα όνομα στο εκτελέσιμο αρχείο σου.
και μετά τρέξτο κανονικά:

./<onoma arxeiou>
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

d_p

Νεοφερμένος

Ο d_p αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 16 μηνύματα.
gcc: error: progl2.c: no such file or directory
gcc: fatal error: no input file

Το μήνυμα αυτό σημαίνει ότι δεν βρίσκεσαι στο φάκελο οπου αποθήκευσες το πρόγραμμα σου.
Χρησιμοποίησε την εντολή cd ώστε να φτάσεις στον φάκελο.
Μετά κάνε ότι λέει ο
giogWgiog.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

εμμα_τριντεντ

Πολύ δραστήριο μέλος

Η εμμα_τριντεντ αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 1,327 μηνύματα.
Παιδιά αντιμετωπίζω ένα πρόβλημα. Έχω εγκαταστήσει 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.

Βρίσε με Βασίλη :tongue:

ps. IDE = Integrated Development Environment (https://en.wikipedia.org/wiki/Integra...nt_environment)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

manolis_f

Νεοφερμένος

Ο manolis_f αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 4 μηνύματα.
καλημερα παιδια..!!!!γραφω ενα πργραμμα και θελω να σιγουρευτω οτι ο χρηστης μου δινει ενα αλφαριθμητικό της μορφης
πχ. αφρος 1234...μπορει να με βοηθησει καποιος??? ευαριστω εκ των προτέρων...:)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
καλημερα παιδια..!!!!γραφω ενα πργραμμα και θελω να σιγουρευτω οτι ο χρηστης μου δινει ενα αλφαριθμητικό της μορφης
πχ. αφρος 1234...μπορει να με βοηθησει καποιος??? ευαριστω εκ των προτέρων...:)

δεν καταλαβα τι μορφης αλφαριθμητικο εννοεις.. :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

manolis_f

Νεοφερμένος

Ο manolis_f αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 4 μηνύματα.
να εχει ας πουμε 4 γραμματα κενο και μετα 5 αριθμους....!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Zaraki

Δραστήριο μέλος

Ο Zaraki αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής. Έχει γράψει 536 μηνύματα.
Αν καταλαβα καλα, αυτο που ζητας ειναι απλο. Αφου εχεις τοσο μεγαλο περιορισμο στη μορφη του string που θα διαβασεις, μπορεις να ελεγχεις το 1ο και το τελευταιο στοιχειο.Αν ειναι γραμμα και αριθμος αντιστοιχα, ψαχνε μεσα στο string για ενα και μονο ενα κενο χαρακτηρα. Λογικα θα εισαι οκ.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

manolis_f

Νεοφερμένος

Ο manolis_f αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 4 μηνύματα.
Zaraki ευχαριστω πολυ...!!σ αυτο που εχει κολλησει το μυαλο μου ειναι τι συνθηκη θα χρησιμοποιησω για να ελέγξεις αν σου παταει ενα γραμμα η εναν αριθμο....
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Black_Butterfly

Πολύ δραστήριο μέλος

Η Αλεξάνδρα αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι Φοιτήτρια και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 1,327 μηνύματα.
Μπορείς να χωρισεις το string στο κενο σε 2 substrings και να ελενξεις και τα δυο μέρη με την isdigit [υπάρχει στο stdio.h η συνάρτηση]. Το πρώτο μέρος πρέπει να σου δώσει τελικά false, και το άλλο true.

https://www.tutorialspoint.com/ansi_c/c_isdigit.htm
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 2 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 9 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top