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

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

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

  • 0
xalia

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

Ερώτηση

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

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

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

 

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

Καμιά ιδέα?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

10 απαντήσεις σε αυτή την ερώτηση

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

νομίζω υπάρχει ήδη έτοιμη function γι'αυτή την λειτουργεία

 

είναι η count chars σε mode 3

 

<?php

$str = "Σήμερα είναι Πέμπτη";

echo count_chars($str,3);

?>

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
μέσα από ένα 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: αφού ποστάρεις για να ποστάρεις κάντο σε κάνα άλλο θέμα που κατέχεις μήπως και πεις κάτι με ουσία!

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

σε ευχαριστώ πολύ lavelle

δικό μου λάθος που δεν έγραψα ότι αναφέρομαι στη C, αυτό το function δεν υπάρχει στη C

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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 θα ισούται με τον αριθμό των διαφορετικών χαρακτήρων που υπάρχουν. Ο κώδικας δεν έχει δοκιμαστεί.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...