Ergebnis 1 bis 4 von 4

Thema: Anzahl bestimmter Buchstaben ermitteln

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Anzahl bestimmter Buchstaben ermitteln

    Sry, dass ich das Thema mal eben misbrauche, aber ich halte es nicht für sinnvoll für meine Frage ein neues zu eröffnen.

    //Edit
    Ich kann auch warten, bis das aktuelle Problem geklärt ist.

    Ähm, ja.
    Also ich möchte einen Zufallsgenerator erstellen, und der weitere Sinn ist auch völlig egal.
    Jedenfalls möchte ich herausfinden, wie oft ein bestimmter Buchstabe vorhanden ist.
    Jedem Buchstaben wird eine Zahl(Wert) zugeteilt und die Anzahl dieser Buchstaben mit der Zahl multipliziert.

    Naja, und ich habs nicht so mit Schleifen.
    Wie könnte ich den unteren Code durch Schleifen vereinfachen?

    PHP-Code:
     $counts=count_chars($string,0); 
     
    $acount=$counts[ord("a")];
    $acount=$acount 1;

     
    $bcount=$counts[ord("b")]; 
    $bcount=$bcount 2;

    $ccount=$counts[ord("c")]; 
    $ccount=$ccount 3;

    $dcount=$counts[ord("d")]; 
    $dcount=$dcount 4;

    $ecount=$counts[ord("e")]; 
    $ecount=$ecount 5;

    $fcount=$counts[ord("f")]; 
    $fcount=$fcount 6;

    $gcount=$counts[ord("g")]; 
    $gcount=$gcount 7;

    $hcount=$counts[ord("h")]; 
    $hcount=$hcount 8;

    $icount=$counts[ord("i")]; 
    $icount=$icount 9;

    $jcount=$counts[ord("j")]; 
    $jcount=$jcount 10;

    $kcount=$counts[ord("k")]; 
    $kcount=$kcount 11;

    $lcount=$counts[ord("l")]; 
    $lcount=$lcount 12;

    $mcount=$counts[ord("m")]; 
    $mcount=$mcount 13;

    $ncount=$counts[ord("n")]; 
    $ncount=$ncount 14;

    $ocount=$counts[ord("o")]; 
    $ocount=$ocount 15;

    $pcount=$counts[ord("p")]; 
    $pcount=$pcount 16;

    $qcount=$counts[ord("q")]; 
    $qcount=$qcount 17;

    $rcount=$counts[ord("r")]; 
    $rcount=$rcount 18;

    $scount=$counts[ord("s")]; 
    $scount=$scount 19;

    $tcount=$counts[ord("t")]; 
    $tcount=$tcount 12;

    $ucount=$counts[ord("u")]; 
    $ucount=$ucount 21;

    $vcount=$counts[ord("v")]; 
    $vcount=$vcount 22;

    $wcount=$counts[ord("w")]; 
    $wcount=$wcount 23;

    $xcount=$counts[ord("x")]; 
    $xcount=$xcount 24;

    $ycount=$counts[ord("y")]; 
    $ycount=$ycount 25;

    $zcount=$counts[ord("z")]; 
    $zcount=$zcount 26;

    $erg=$acount $bcount $ccount $dcount $ecount $fcount $gcount $hcount $icount $jcount $kcount $lcount $mcount $ncount $ocount $pcount $qcount $rcount $scount $tcount $ucount $vcount $wcount $xcount $ycount +$xcount $zcount
    Also dein Problem geht ja wirklich am Thema vorbei, werde da mal Thementrennung beantragen

    Aber es ist möglich, ja.

    PHP-Code:
    <?php

     $string 
    'Abc';

     
    $buchstaben = array ( 'a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z' );

     
    $count count_chars $string);

     
    $erg 0;

     foreach ( 
    $buchstaben AS $position => $buchstabe ) {

        if ( 
    $position 25 $position -= 26;

        
    $erg += $count[ord($buchstabe)] * ( $position );
            
    // +1 weil die erste Position eines Arrays 0 ist.

     
    }

    ?>
    Dir ist aber klar, dass du damit nur das vorkommen von Kleinbuchstaben zählst?

    Wenn du Großbuchstaben auch beachten möchtest musst du das Array um diese erweitern und je nachdem, wenn du Groß- und Kleinbuchstaben gleichartig zählst vor der Addition zum Ergebnis die Zeile
    PHP-Code:
    if ( $position 25 $position -= 26
    einfügen.

    Ich habe leider nicht herausgefunden, welche Zeichentabelle verwendet wird. Ich glaube aber ISO-8859-1 ist bei PHP Standard. Multibytezeichen können den Zähler entsprechend verwirren. Aber wenn es dir nur um die 26 Buchstaben geht, brauchst du dich nicht sorgen.

    Danke, mitaki. =)
    Großbuchstaben spielen keine Rolle, das löse ich mit strtolower().


    Achja und ich wäre mal dafür einen allgemeinen Fragethread zu eröffnen.
    Viele Probleme können mit 2-3 Posts gelöst werden, und das Thema ist gegessen.
    Da lohnt es sich nicht wirklich dafür ein neues Thema zu eröffnen.

    Wäre eine Überlegung Wert, habe ohnehin schon die Moderation (NPC ) beauftragt, den Thread zu teilen, eventuell macht man so etwas daraus?

    Zitat Zitat von mitaki Beitrag anzeigen
    Wäre eine Überlegung Wert, habe ohnehin schon die Moderation (NPC ) beauftragt, den Thread zu teilen, eventuell macht man so etwas daraus?

    Erledigt.
    Das Thema könnte dann hier hin geteilt werden.

    Ich habe eigentlich gemeint, dass NPC das entscheiden sollte.

    Aber gut, jetzt ist es gemacht und was noch kommt sehen wir dann ja.

    Geändert von NPC Fighter (17.01.2007 um 14:53 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •