For schleifen zusammenfassen - Hilfe
Hallo
ich soll bei einer Aufgabe von einem eingelesenen String angeben, wie oft bestimmte Buchstaben vorkommen.
Der String darf ausschließlich die Buchstaben A-F enthalten.
Ich hab jetzt für jeden Buchstaben eine for Schleife
...
int i, k, ...A=0, B=0,...;
char Kette[100];
Funktionieren tuts. Beim Versuch die Schleifen zusammen zufassen hatte ich jedoch große Schwierigkeiten.
Nach langer Überlegung und rumprobieren kam ich dann auf:
Funktionieren tut das auch, aber geht glaub ich noch einfacher. Als ich mein prof gefragt hab, gab er als Hinweis, dass ich an die Asci tabelle denken soll. Da hätte ich aber wieder das selbe problem, mit dem inkrementieren und müsste wieder mit if abfragen A++ usw machen.
Danke schonmal im vorraus an alle, die sich Zeit dafür nehmen
Hier nochmal mein ganzer code:
Hallo
ich soll bei einer Aufgabe von einem eingelesenen String angeben, wie oft bestimmte Buchstaben vorkommen.
Der String darf ausschließlich die Buchstaben A-F enthalten.
Ich hab jetzt für jeden Buchstaben eine for Schleife
...
int i, k, ...A=0, B=0,...;
char Kette[100];
C++:
for(i=0;i <laenge;i++){
if(Kette[i] == 'A')
A++;
}
for(i=0;i <laenge;i++){
if(Kette[i] == 'B')
B++;
}
...
Nach langer Überlegung und rumprobieren kam ich dann auf:
C++:
for(k=0;k<=5;k++){
for(i=0;i<laenge;i++){
if(Kette[i] == 'A'+k){
if(k==0) A++;
if(k==1) B++;
}
}
}
Danke schonmal im vorraus an alle, die sich Zeit dafür nehmen

Hier nochmal mein ganzer code:
C++:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(){
int k, i, j, hilf, laenge, vorgesehene_laenge, Fehler=0, A=0, B=0, C=0, D=0, E=0, F=0;
char Kette[101];
printf("Die Buchstaben A-F eingeben:");
gets(Kette);
printf("s = %s", Kette);
laenge = strlen(Kette);
for(k=0;k<=5;k++){
for(i=0;i<laenge;i++){
if(Kette[i] == 'A'+k){
if(k==0) A++;
if(k==1) B++;
}
}
}
for(i=0;i<laenge;i++){ //läuft die Zeichenkette ab
for(j=65;j<71;j++){ //läuft in der Ascii-Tabelle A_F ab
if(Kette[i]==j){
break;
}
if(j==70){
Fehler++;
}
}
}
if(Fehler>0)
printf("\nFalsche Zeiche kommen %i mal vor",Fehler);
printf("\nSie haben %i Zeichen eingegeben", laenge);
printf("\nIn s richtig vorkommende Zeichen und deren Anzahl:\n");
printf("A(%i), B(%i), C(%i), D(%i), E(%i), F(%i)\nz = ",A,B,C,D,E,F);
for(i=0;i<A;i++)
printf("%c",'A');
for(i=0;i<B;i++)
printf("%c",'B');
for(i=0;i<C;i++)
printf("%c",'C');
for(i=0;i<D;i++)
printf("%c",'D');
for(i=0;i<E;i++)
printf("%c",'E');
for(i=0;i<F;i++)
printf("%c",'F');
getch();
return 0;
}
Zuletzt bearbeitet: