Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

#include <iostream>
using namespace std;
int length(char *p)//να μεταβιβαζεται η διευθυνση μιας συμβολοσειρας
{
    int c = 0;
    
    while(*p !='\0')
    {
        c++;
        p++;
    }
    
    return c; //επιστρεφει ως τιμη το μηκος της λεξης
}
int main ()
{
    
    char *c = "Hello World";
    cout<<"To mhkos ths leksis einai : " ; cout<<length©/*<---παιδια εδω δεν εχω βαλει ως παραμετρο την διευθυνση*/ <<endl;
    
    system("pause");
    return 0;
}

Δημοσ.

/*Na γραφει συναρτηση η οποια να δεχεται ως παραμετρο τη διευθυνση μιας συμβολοσειρας

 και να εμφανιζει μονο τους αριθμητικους χαρακτηρες(0-9) που περιεχονται στην συμβολοσειρα*/
 

 /*χρειαζομαι βοηθεια σε αυτη την ασκηση δεν ξερω τι αλλο να κανω για να βρω την λυση */

 int Arithmoi(char *p);
 
 int main ()
 {
       char *ptr;
       ptr="Hello1234";
       cout<<"Oi arithmoitikoi xarakthres einai : "; cout<<Arithmoi(ptr) <<endl;
      
     
       system("pause");
     return 0;
 }
 int Arithmoi(char *p)
 {
     int counter = 0;
     int num ;
     
     while(*p != '\0')
     {
         if(*p == num)
         {
             counter++;
             
         }
         p++;
     }
     
     return counter++;
 }

  • Moderators
Δημοσ.

Θα ξεκινήσω λέγοντάς σου αυτά που σου είχα πει και σε άλλα threads στο προηγούμενο account σου.

  1. Βάζε code tags.
  2. Τρέχε αυτά που γράφεις.

Τώρα, στο πρώτο πρόγραμμα που έγραψες δε γράφεις ούτε ερώτηση ούτε τίποτα, απλώς ανοίγεις ένα θέμα που έχει κάποιον κώδικα μέσα. Εμείς δεν είμαστε μάντεις για να ξέρουμε τι θες να κάνεις, τι απορίες έχεις και πού κολλάς. Η αλήθεια είναι ότι στο ναι που έγραψα περίμενα μια απάντηση "πού μου λες ναι τώρα". Ο κώδικας σωστός φαίνεται γι' αυτό που (υποθέτω) θέλεις να κάνεις, απλώς δεν είναι C++, είναι C γραμμένη με συντακτικό C++. Αυτό δεν είναι απαραίτητα κακό αν θες να μάθεις αλγοριθμική σκέψη κλπ και δε σ' ενδιαφέρει η γλώσσα αυτή καθαυτή, απλώς πιστεύω ότι C και C++ δεν είναι οι καλύτερες για κάποιον αρχάριο.

 

Το δεύτερο έχει πολλά λάθη. Κατ' αρχάς αυτό που πας να κάνεις δεν είναι αυτό που σου ζητάει. Εσύ πας να εκτυπώσεις πόσους αριθμούς έχει μέσα ο πίνακάς σου, ενώ η εκφώνηση σου ζητάει να εκτυπώσεις μόνο τους αριθμητικούς χαρακτήρες του πίνακα. Στη συνέχεια συγκρίνεις κάθε στοιχείο του πίνακά σου με το num, το οποίο δεν αρχικοποιείς ποτέ. Και να το είχες αρχικοποιήσει, πάλι λάθος θα ήταν διότι θα σύγκρινες με μόνο έναν από τους 10 πιθανούς αριθμούς. Το ότι το ονόμασες num δε σημαίνει ότι θα σου βρίσκει τα νούμερα επειδή έτσι το σκέφτηκες. Τέλος, επιστρέφεις counter++. Δεν είμαι απόλυτα σίγουρος ότι το ++ δε θα εκτελεστεί, αλλά σίγουρα δε θα εκτελεστεί πριν η συνάρτηση επιστρέψει, οπότε δεν κάνει καμία διαφορά είτε υπάρχει είτε όχι. Αν ήθελες το counter να αυξηθεί πριν επιστρέψει η συνάρτηση, έπρεπε να γράψεις ++counter.

 

Πριν ξεκινήσεις να υλοποιείς οποιονδήποτε αλγόριθμο, πρέπει να έχεις κατανοήσει πλήρως τι σου ζητάει. Αν δεν το κάνεις αυτό, θα γράφεις ό,τι σου κατεβαίνει και μετά θα ψάχνεις να βρεις πού έκανες λάθος. Επίσης, τρέχε αυτά που γράφεις με το μυαλό σου για να δεις τη ροή του αλγορίθμου σου και να βρεις τυχόν λογικά λάθη που δεν πιάνει ο compiler.

Δημοσ.

την συμβολοσειρα πως μπορω να την φτιαξω? το αλλαξα ετσι ptr[8] = {'H','e','l','l','o','1','2','3','4'}; αλλα μου βγαζει λαθοι!

οσο για τα code tags ας βαλουν βοηθεια για αυτο δεν ξερω πως γινεται(γιατι εχεις κολλησει με αυτο το θεμα)

τα τρεχω αυτα που γραφω αλλα δεν καταλαβαινω που υπαρχει το λαθος

Δημοσ.

τα εφτιαξα τωρα εχω κολλησει στο πως θα βρω αν υπαρχει αριθμος μεσα σε μια συμβολοσειρα?

Εδώ μέσα θα βρεις αυτό που ζητάς. Όποτε χρειάζεσαι μία συνάρτηση βασισμένη πχ σε strings, characters, memory, maths κ.α. ρίξε μία ματιά σε κάποιο c/c++ reference. Καλό θα ήταν να "ξεφύλιζες" το reference που σου έστειλα για να πάρεις μία ιδέα του τί υπάρχει γενικά. Όταν χρειάζεται να χρησιμοποιήσεις κάποια συνάρτηση, πριν την υλοποιήσεις, καλό θα ήταν να ανατρέχεις πρώτα σε κάποιο reference point μήπως είναι ήδη υλοποιημένη σε κάποια standard βιβλιοθήκη. Αν είναι, τότε είσαι πολύ τυχερός/ή. Στην περίπτωσή σου, είσαι τυχερός/ή.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...