umlaute in c zähen?



  • Hallo, ich wollte wissen wie ich die grossen bzw kleinen umlaute zählen kann,
    hier hab ich einen Quellcode, der erstmal nur das ö zählt:

    #include<stdio.h>
    int main ()
    {
    int number;
    char c;
    number=0;

    while((c=getchar())!='$'){
    switch(c){
    case 'ö': number++;
    break;
    }

    }
    printf("%d", number);
    }



  • Theseus schrieb:

    Hallo, ich wollte wissen wie ich die grossen bzw kleinen umlaute zählen kann,
    hier hab ich einen Quellcode, der erstmal nur das ö zählt:

    #include<stdio.h>
    int main ()
    {
    	int number;
    	char c;
    	number=0;
    
    	
    	while((c=getchar())!='$'){ 
    		switch(c){
    			case 'ö': number++;
    			break;
    		}
    			
    	}
    	printf("%d", number);
    }
    

    Schon probiert?
    Funktioniert es?

    Wo ist das Problem?

    c sollte auch ein int sein.



  • In modernen Encodings (Unicode) haben Umlaute mehr als 1 Byte. Da wird dein Code dann nicht mehr funktionieren. Außerdem müsstest du bei Unicode auch noch Normalisierung berücksichtigen.


Anmelden zum Antworten