Feedback

C# - Gross- Kleinbuchstaben in String schnell zählen

Veröffentlicht von am 10/19/2007
(1 Bewertungen)
Der Code funktioniert nur mit ASCII Codierung. Aber das Prinzip läßt sich auch auf andere Kodierungen übertragen. Da Zeiger verwendet werden, muß zur Kompilierung /unsafe verwendet werden.
public void countUpperLower (string a, out int upper, out int lower) {
    lower = 0; upper = 0; 
    unsafe {
        fixed (char* cTmp = a) {
            char* c = cTmp; 
            char* end = c + a.Length; 
            while (c < end) {
                if (*c > 64 && *c < 91 )
                    upper++; 
                if (*c > 96 && *c < 123)
                    lower++; 
                c++; 
            }
        }
    }
}

4 Kommentare zum Snippet

Firendeath schrieb am 6/2/2010:
Sorry hab da mal ne Frage.

Was für eine Bedeutung hat das out ?
Ist das, das gleiche wie ein ref ?
Stefan Wimmer schrieb am 6/2/2010:
out bedeutet dass die variable nicht in der aufrufenden methode initialisiert sein muss. ref bedeutet dass ein Pointer in die funktion übergeben wird was nur bei valuetypes notwendig ist.
Firendeath schrieb am 6/7/2010:
Wenn ich einer Funktion eine Variable mit Hilfe von out übergebe... dann wird diese Variable also (wie bei ref) auch Funktionsextern verändert ?
Christopher Kk schrieb am 6/7/2010:
Right
 

Logge dich ein, um hier zu kommentieren!