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

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

Δημοσ.

θελω να φτιαξω 2 string απο ενα αλλο,που το πληκτρολογει ο χρηστης ,με βαση το χαρακτηρα '/'

με λιγα λογια αν ο χρηστης πληκτρολογησει www.google.gr/index.html θελω να αποθηκευεται σε μια μεταβλητη char host[100] το string www.google.gr kai σε μια αλλη char page[100] το string /index.html

Εδω ειναι μια προσπαθεια που εκανα για να αποθηκευσω στο host το καινουριο string αλλα δεν δουλευει..

 

#include <stdio.h>

#include <string.h>

int main(void)

{

char url[100];

char host[100];

int flag,i;

 

 

 

printf("Enter url");

scanf("%s",url);

 

for(i=0;i<strlen(url);i++)

{

if(url=='/') flag=i;

break;

}

for(i=0;i<flag);i++){

 

host=url;

}

printf("%s\n",host);

return 0;

}

 

ευχαριστω για τη βοηθεια...

Δημοσ.

να σαι καλα!!! )))))))

 

μηπως μπορω να το κανω να διαβαζει και το κενο?γτ αν παταω space δεν το τρεχει σωστα εμφανιζει sagmentation fault

 

 

Άσκηση 2 εργαστήριο δικτύων ceid ? :rolleyes:

 

 

poy to katalaves???:P:P

Δημοσ.

Για να διαβάζει και κενά αντικατέστησε την scanf() με την fgets() ... εκτός αν έχεις την υπομονή να διαβάσεις στην τεκμηρίωση της scanf πως να συμπεριλαμβάνει επιθυμητούς χαρακτήρες (δεν το θυμάμαι απ' έξω, γιατί εγώ δεν τη χρησιμοποιώ ποτέ... νομίζω με αγκύλες)

Δημοσ.

Δεν ξέρω αν ξεφεύγει από τον σκοπό της άσκησης αλλά για είσοδο από τον χρήστη η πλειοψηφία προγραμμάτων χρησιμοποιεί την GNU ReadLine.

 

Όταν μιλάς για C μπροστά σε καθηγητές μην χρησιμοποιείς τον όρο string. Μπορεί να βγάλουν καπνό από τα αυτιά... :mrgreen: :mrgreen: :mrgreen:

Δημοσ.

...

Όταν μιλάς για C μπροστά σε καθηγητές μην χρησιμοποιείς τον όρο string. Μπορεί να βγάλουν καπνό από τα αυτιά... :mrgreen: :mrgreen: :mrgreen:

 

:lol:

 

Μπορεί να λέει c-string όμως :)

Δημοσ.

Πέρα από την πλάκα, τα char arrays είναι διαφορετικό πράγμα από τα strings. Ως έννοια είναι υπερσύνολα των strings, παρόλο που στην πράξη σε απευθείας αντιπαράθεση ενδέχεται να έχουν μικρότερο μέγεθος (κατά 1 char). Λέγοντας string σε C context, το μυαλό ενστικτωδώς πάει σε nul-terminated array of chars, που είναι και τυπικά η σωστή ορολογία, και μάλιστα με 1 L το "nul"... ;)

 

Αλλά δεν χρειάζεται να είναι κανείς τόσο τυπικός, "string" ή "c-string" είναι μια χαρά όροι και τις καταλαβαίνουν όλοι εξίσου (πλην ίσως μερικών αρχάριων)

Δημοσ.

Τυπικοτητες στη C ?

>int main(int,char**)
{
int i =0;
for(;i < 1000; i++,printf("%c","xa0"[rand()%3]), !(i % 50) ? printf("\n") : 0);
return 0;
}

 

 

Τυπικά αυτό ονομάζεται "code golfing" :lol:

Δημοσ.
#include <stdio.h>

#include <string.h>

int main(void)

{

char url[100];

char host[100];

int flag,i;

 

 

 

printf("Enter url");

scanf("%s",url);

 

for(i=0;i<strlen(url);i++)

{

if(url=='/')

{flag=i;

break;

}

 

}

for(i=0;i<flag;i++){

 

host=url;

}

printf("%s\n",host);

return 0;

}

 

Οπως ειπα κ πριν ο κωδικας αυτος ξεχωριζει πχ.το www.google.gr απ το www.google.gr/index

Αν στη δευτερη εκτελεση πληκτρολογησει ο χρηστης ενα πιο μικρο url πχ www.in.gr το host που τυπωνεται ειναι www.in.gr και διπλα σκουπιδια απ το προηγουμενο μεγαλυτερο υποθετω.Κανενας τροπος να μην εμφανιζονται τα σκουπιδια?

Δημοσ.

Οπως ειπα κ πριν ο κωδικας αυτος ξεχωριζει πχ.το www.google.gr απ το www.google.gr/index

Αν στη δευτερη εκτελεση πληκτρολογησει ο χρηστης ενα πιο μικρο url πχ www.in.gr το host που τυπωνεται ειναι www.in.gr και διπλα σκουπιδια απ το προηγουμενο μεγαλυτερο υποθετω.Κανενας τροπος να μην εμφανιζονται τα σκουπιδια?

να κανείς αρχικοποίηση των string σου πριν από κάθε φορά που μπαίνουν url

Δημοσ.

Δεν είδα τον κώδικα (βάλε τον ανάμεσα σε [ code] [/ code] tags, χωρίς τα κενά, για να διαβάζεται) αλλά δοκίμασε να αρχικοποιήσεις τα 2 c-strings σου...

 

>
char url[100] = {'\0'};
char host[100] = {'\0'};

 

ΥΓ. Ανεξάρτητα από το αν φταίει αυτό ή όχι, καλό είναι να την κάνεις συνήθεια αυτή την αρχικοποίηση.

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

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

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

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

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

Σύνδεση

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

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