bloedbommel
Newbie
- Registriert
- Mai 2014
- Beiträge
- 1
Moin,
ich hab das unten stehende Programm (in C) entworfen, welches einen Textdokument einliest, die Anzahl der Zeilen, Zeichen, Groß-und Kleinbuchstaben und sonstige Zeichen zählt und ausgibt.
Allerdings möchte ich auch die Anzahl einzelner Buchstaben herausfinden, ich dachte, dass das evtl. mit dem Programm laufen würde, das ich bereits habe, allerdings funktioniert wohl meine letzte For-Schleife nicht, mit der gezählt werden soll, und ich habe langsam echt keine Ideen mehr!
Könnt ihr mir helfen den Fehler zu finden?
#include <stdio.h>
#define MAX_LINE_LEN 256
#define ALPHABET_LEN 26
int main ()
{
char s[MAX_LINE_LEN];
unsigned int num_lines=0, num_upper_case=0, num_lower_case=0, num_non_letter=0, num_printable=0;
unsigned int histogram[ALPHABET_LEN]={0};
int i=0,k=0,a=0,c=0;
while(fgets(s,MAX_LINE_LEN,stdin)!= NULL){
num_lines++;
fputs(s,stdout);
for(i=0; s; i++){
if(s>=65){
if(s<=90){
num_upper_case++;
}}
if(s>=97){
if (s<=122){
num_lower_case++;
}}
if(s>=0){
if(s<=127){
num_printable++;
}}
for ( k='A'; k<='Z'; k++){
for(c='a'; c<='z'; c++){
if( s==k || s==c){
a++;
}}}
} }
num_non_letter= num_printable-(num_lower_case+num_upper_case);
printf("Die Anzahl der Zeilen im Text lautet: %d\n",num_lines);
printf("Die Anzahl der Grossbuchstaben lautet: %d\n",num_upper_case);
printf("Die Anzahl der Kleinbuchstaben lautet: %d\n",num_lower_case);
printf("Die Anzahl der sonstigen Zeichen lautet: %d\n",num_non_letter);
printf("Die Anzahl aller druckbaren Zeichen lautet: %d\n",num_printable);
for(k='A' ,c='a'; k<='Z' ,c<='z'; k++ , c++){
printf("Haeufigkeit von %c/ %c: %d\n",k,c,histogram[a]);
}
return 0;
}
Lg Bloedbommel
ich hab das unten stehende Programm (in C) entworfen, welches einen Textdokument einliest, die Anzahl der Zeilen, Zeichen, Groß-und Kleinbuchstaben und sonstige Zeichen zählt und ausgibt.
Allerdings möchte ich auch die Anzahl einzelner Buchstaben herausfinden, ich dachte, dass das evtl. mit dem Programm laufen würde, das ich bereits habe, allerdings funktioniert wohl meine letzte For-Schleife nicht, mit der gezählt werden soll, und ich habe langsam echt keine Ideen mehr!
Könnt ihr mir helfen den Fehler zu finden?
#include <stdio.h>
#define MAX_LINE_LEN 256
#define ALPHABET_LEN 26
int main ()
{
char s[MAX_LINE_LEN];
unsigned int num_lines=0, num_upper_case=0, num_lower_case=0, num_non_letter=0, num_printable=0;
unsigned int histogram[ALPHABET_LEN]={0};
int i=0,k=0,a=0,c=0;
while(fgets(s,MAX_LINE_LEN,stdin)!= NULL){
num_lines++;
fputs(s,stdout);
for(i=0; s; i++){
if(s>=65){
if(s<=90){
num_upper_case++;
}}
if(s>=97){
if (s<=122){
num_lower_case++;
}}
if(s>=0){
if(s<=127){
num_printable++;
}}
for ( k='A'; k<='Z'; k++){
for(c='a'; c<='z'; c++){
if( s==k || s==c){
a++;
}}}
} }
num_non_letter= num_printable-(num_lower_case+num_upper_case);
printf("Die Anzahl der Zeilen im Text lautet: %d\n",num_lines);
printf("Die Anzahl der Grossbuchstaben lautet: %d\n",num_upper_case);
printf("Die Anzahl der Kleinbuchstaben lautet: %d\n",num_lower_case);
printf("Die Anzahl der sonstigen Zeichen lautet: %d\n",num_non_letter);
printf("Die Anzahl aller druckbaren Zeichen lautet: %d\n",num_printable);
for(k='A' ,c='a'; k<='Z' ,c<='z'; k++ , c++){
printf("Haeufigkeit von %c/ %c: %d\n",k,c,histogram[a]);
}
return 0;
}
Lg Bloedbommel