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

strlen για διαφορετικούς χαρακτήρες


xalia

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

μέσα από ένα string θέλω να υπολογίσω πόσους διαφορετικούς χαρακτήρες έχω. Πχ με το strlen παίρνω το πλήθος όλων των χαρακτήρων του string

civilization = 12 συνολικά χαρακτήρες

civilization = 9 μοναδικοί χαρακτήρες

 

σκέφτηκαν στην αρχή να πάρω το string ένα ένα χαρακτήρα να το μετατρέψω σε αριθμούς, να του αποθηκεύσω σε ένα array, να τους storarw με bubbleshort και μετά με ένα if σε loop να του συγκρίνω ανα μεταξύ τους, αλλά το έχασα στην πρώτη μετατροπή!

Καμιά ιδέα?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

μέσα από ένα string θέλω να υπολογίσω πόσους διαφορετικούς χαρακτήρες έχω. Πχ με το strlen παίρνω το πλήθος όλων των χαρακτήρων του string

civilization = 12 συνολικά χαρακτήρες

civilization = 9 μοναδικοί χαρακτήρες

 

σκέφτηκαν στην αρχή να πάρω το string ένα ένα χαρακτήρα να το μετατρέψω σε αριθμούς, να του αποθηκεύσω σε ένα array, να τους storarw με bubbleshort και μετά με ένα if σε loop να του συγκρίνω ανα μεταξύ τους, αλλά το έχασα στην πρώτη μετατροπή!

Καμιά ιδέα?

Kathe ti ston ypologisth einai enas arithmos . Apo thn theoria ths pliroforias h pliroforia einai enas arithmos . Afou kathe ti einai enas arithmos kathe byte dld einai enas arithmos kai ena ascii character einai ena byte sthn ousia ,gt na tous metatrepseis se arithmos afou idi einai arithmos .

 

P.S sthn arxh diavazoume kai meta rwtame .

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε ευχαριστώ για τη πολύτιμη πληροφορία!!!! Δε το ήξερα!!! Να σαι καλά που βοήθησες τόσο!!!!

 

Ps: αφού ποστάρεις για να ποστάρεις κάντο σε κάνα άλλο θέμα που κατέχεις μήπως και πεις κάτι με ουσία!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

E ma afou den katalaveneis kan se ti anaferomai dld arxizeis na ironevese???LOL.Katarxas giati na metatrepseis tous xarakthres se arithmous afou sou lew einai arithmos o kathe xarakthras sou .Des pinaka ascii .An katalava kala theleis na taxinomiseis enan pinaka xarakthrwn etc??E tote sigrine tous xarakthres etc opos einai kai mhn kaneis metatropes afou pane me thn seira ston pinaka ascii.Deukrinise ti thes sthn ousia .

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

re m1cRo eleos ...

LOL exete dikio.

 

 

Loipon

 

>int sum=0;
for(int i='a';i<='z';i++){
     if(strchr(buf,(char)i)!=NULL){
                sum++;
     }
}
for(int i='A';i<='Z';i++){
     if(strchr(buf,(char)i)!=NULL){
                sum++;
     }
}

for(int i='0';i<='9';i++){
     if(strchr(buf,(char)i)!=NULL){
                sum++;
     }
}

 

 

E grafw xoris dokimes :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βέβαια δεν είναι και πολύ efficient.. αν είχες κάνα κινέζικο αλφάβητο θα έτρεχε πάρα πολλές φορές χωρίς να χρειάζεται...

 

>
<?
$str = "hello world";

$chars = array();

$len = strlen($str);

for ($i = 0; $i < $len; $i++){
   $c = strtolower(substr($str, $i, 1));
   if (!in_array($c, $chars))
       $chars[] = $c;
}
echo count($chars);
?>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μία εναλλακτική προσέγγιση.

 

Έστω ότι έχεις αποθηκεύσει το string σου στον πίνακα MyString. Έχουμε:

 

>
char *pString;
int CharCount[224];	/* 256 - 32: Oi prwtoi 32 ASCII xarakthres einai xarakthres elegxoy termatikoy */
int i;
int UniqueCount = 0;

for(i = 0; i < 224; i++) CharCount[i] = 0;

for(pString = MyString; pString[0] != '\0'; pString++) CharCount[pString[0] - 32]++;

for(i = 0; i < 224; i++) if(CharCount[i]) UniqueCount++;

 

Η UniqueCount θα ισούται με τον αριθμό των διαφορετικών χαρακτήρων που υπάρχουν. Ο κώδικας δεν έχει δοκιμαστεί.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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