- Registriert
- 14.05.08
- Beiträge
- 561
Hallo zsamm!
Hab ein Problem. Und zwar sollen wir in der Uni ein Programm schreiben, bei dem man eine Zeichenkette eingibt und dann einen Buchstaben oder eine Zahl die in der Kette gesucht und gezählt wird. Danach soll das Ergebnis ausgegeben werden.
Soweit so gut. Ich hab das ganze jetzt mal ohne eine Funktion geschrieben und da kommt folgendes raus:
Und das funktioniert auch und tut es einwandfrei!
Jetzt will der Prof aber eine Funktion haben der die Zeichenkette und das zu suchende Zeichen übergeben wird und dann die ermittelte Anzahl zurückgibt ins main Programm. Er hat die Funktion int count_char(char *str, char zeichen); gennant. Was hat es denn mit dem * auf sich? Ist das nötig?
Denn mein Programm schaut jetzt so aus:
Aber er gibt mir jetzt einen Fehler in der Markierten Zeile aus der wie folgt lautet:
error C2109: Index erfordert ein Array oder einen Zeigertyp
Wie bring ich das denn nu zum laufen?
Hab im Moment irgendwie keine Ahnung mehr...
Hab ein Problem. Und zwar sollen wir in der Uni ein Programm schreiben, bei dem man eine Zeichenkette eingibt und dann einen Buchstaben oder eine Zahl die in der Kette gesucht und gezählt wird. Danach soll das Ergebnis ausgegeben werden.
Soweit so gut. Ich hab das ganze jetzt mal ohne eine Funktion geschrieben und da kommt folgendes raus:
Code:
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
int count_char(char *str, char zeichen);
int main(void)
{
int i = 0, z = 0;
char kette[100];
char zeichen[2];
printf("Bitte Zeichenkette (max. 99) eingeben: ");
scanf("%99s", kette);
printf("Zu suchendes Zeichen: ");
scanf("%1s", zeichen);
for(i = 0; i < 100; ++i)
if(kette[i]==zeichen[0])
z++;
printf("Gesuchtes Zeichen -%s- kam %d mal vor.\n", zeichen, z);
return 0;
}
Jetzt will der Prof aber eine Funktion haben der die Zeichenkette und das zu suchende Zeichen übergeben wird und dann die ermittelte Anzahl zurückgibt ins main Programm. Er hat die Funktion int count_char(char *str, char zeichen); gennant. Was hat es denn mit dem * auf sich? Ist das nötig?
Denn mein Programm schaut jetzt so aus:
Code:
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
int count_char(char kette, char zeichen);
int main(void)
{
char kette[100];
char zeichen[2];
printf("Bitte Zeichenkette (max. 99) eingeben: ");
scanf("%99s", kette);
printf("Zu suchendes Zeichen: ");
scanf("%1s", zeichen);
printf("Gesuchtes Zeichen -%s- kam %d mal vor.\n", zeichen, count_char(kette[100], zeichen[2]));
return 0;
}
int count_char(char kette, char zeichen)
{
int i, z = 0;
for(i = 0; i < 100; ++i)
[COLOR=Red][B]if(kette[i]==zeichen[0])[/B][/COLOR]
z++;
return z;
}
error C2109: Index erfordert ein Array oder einen Zeigertyp
Wie bring ich das denn nu zum laufen?

Hab im Moment irgendwie keine Ahnung mehr...