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

Μια quick ερώτηση σχετικά με strings στη C


WordUp

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

Δημοσ.

Noobικη ερώτηση, αλλά δεν με βοήθησε καθόλου το google...

 

Πώς γίνεται μέσω της scanf να διαβάζω ΚΑΙ whitespace όταν διαβάζω strings; Γιατί ως γνωστόν, η scanf πηδάει whitespace characters.

 

Εάν έχουμε κάτι τέτοιο

>char lol[255];
scanf("%s", &lol);

 

και εισάγουμε "hello world" θα εκχωρηθεί μόνο το "hello".

Υπάρχει κάποιαο λύση; Κάπου είχα διαβάσει κάτι πως να περάσω με for loop και %c ένα string, αλλά δεν πολυκατάλαβα.

Ευχαριστώ προκαταβολικά.

Δημοσ.
Noobικη ερώτηση, αλλά δεν με βοήθησε καθόλου το google...

 

Πώς γίνεται μέσω της scanf να διαβάζω ΚΑΙ whitespace όταν διαβάζω strings; Γιατί ως γνωστόν, η scanf πηδάει whitespace characters.

 

Εάν έχουμε κάτι τέτοιο

>char lol[255];
scanf("%s", &lol);

 

και εισάγουμε "hello world" θα εκχωρηθεί μόνο το "hello".

Υπάρχει κάποιαο λύση; Κάπου είχα διαβάσει κάτι πως να περάσω με for loop και %c ένα string, αλλά δεν πολυκατάλαβα.

Ευχαριστώ προκαταβολικά.

 

θα σου προτινα να γραψεις ενα κομματι κωδικα εσυ που να κανει αυτη την δουλεια. με ενα while η for διατρεχεις το string σου (:lol:) ενω ταυτοχρονα τσεκαρεις για τις λεξεις. ακομα ενα while/for δλδ μεσα στο πρωτο. αν ενδιαφερεσαι το βραδυ μπορω να ποσταρω τον κωδικα

Δημοσ.
Noobικη ερώτηση, αλλά δεν με βοήθησε καθόλου το google...

 

Πώς γίνεται μέσω της scanf να διαβάζω ΚΑΙ whitespace όταν διαβάζω strings; Γιατί ως γνωστόν, η scanf πηδάει whitespace characters.

 

Εάν έχουμε κάτι τέτοιο

>char lol[255];
scanf("%s", &lol);

 

και εισάγουμε "hello world" θα εκχωρηθεί μόνο το "hello".

Υπάρχει κάποιαο λύση; Κάπου είχα διαβάσει κάτι πως να περάσω με for loop και %c ένα string, αλλά δεν πολυκατάλαβα.

Ευχαριστώ προκαταβολικά.

>  
           char buf[255];
scanf("%254[^\n]s",buf);
puts(buf);

Δημοσ.
>  
           char buf[255];
scanf("%254[^\n]s",buf);
puts(buf);

 

 

Ευχαριστώ ρε μαν, αλλά μπορείς να μου εξηγήσεις τι ακριβώς κάνει το "%254[^\n], ώστε μην κάνω copypaste κάτι χωρίς να καταλαβαίνω;

:P

Δημοσ.
Ευχαριστώ ρε μαν, αλλά μπορείς να μου εξηγήσεις τι ακριβώς κάνει το "%254[^\n], ώστε μην κάνω copypaste κάτι χωρίς να καταλαβαίνω;

:P

 

λογικα θα διαβαζει 254 χαρακτιρες (κοτσανα?)

Δημοσ.
λογικα θα διαβαζει 254 χαρακτιρες (κοτσανα?)

 

Ναι και σταματάει όταν δει αλλαγή γραμμής.

 

Μέσα στο [ ] βάζεις τι χαρακτήρες δέχεται ή δεν δέχεται.

 

π.χ μπορείς να γράψεις [Α-Ζ]

 

αν βάλεις το σύμβολο ^ από μπροστά σημαίνει ότι δεν δέχεται αυτούς τους χαρακτήρες

 

Οπότε αν γράψεις ^\n σημαίνει ότι δέχεται τα πάντα εκτός από το \n (τα πάντα περιλαμβάνουν και το κενό ανάμεσα στις λέξεις)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...