Hallo C Freunde,
ich versuche mich grad mal eine Woche an C und bin schon fast am verzweifeln. Könnte sich mal bitte jemand meinen Quellcode ansehen und mir auf die Sprünge helfen?
Es geht um eine Hausaufgabe. Aufgabenstellung: 2 Zeichenketten sollen zeichenweise eingelesen (maximale Zeichenzahl mit define MAX x begrenzen), und dann ebenfalls zeichenweise Verglichen und sortiert ausgegeben werden.
Ich hatte schon alles fertig, habe aber anscheinend immer mit ähnlichen Zeichenketten probiert. So kam es im Seminar dann zu Fehlern. Ich hab jetzt nochmal alles neu angefangen und bekomme bereits im 1.Teil (Einlesen der Zeichenketten) folgenden Fehler:
Getestet wurde mit zwei mal 7 Zeichen Tastatureingabe.
Zeichenkette 1 wird richtig erstellt. Kongret werden die ersten 4 Zeichen der Tastatureingabe in Kette1 übernommen. In Zeile 31 wird Kette1 abgeschlossen und dann Kette2 erstellt. Das funktioniert auch so weit, bis auf Zeile 49. Hier wird die Kette1, beginnend mit dem linken Zeichen, mit "\000" überschrieben. Warum????
Alles anzeigen
Kann mir jemand einen Tip geben was ich hier verkehrt mache? Ich danke Euch für jeden Tip.
viele Grüße
rosch[/i][/i][/i][/i]
ich versuche mich grad mal eine Woche an C und bin schon fast am verzweifeln. Könnte sich mal bitte jemand meinen Quellcode ansehen und mir auf die Sprünge helfen?
Es geht um eine Hausaufgabe. Aufgabenstellung: 2 Zeichenketten sollen zeichenweise eingelesen (maximale Zeichenzahl mit define MAX x begrenzen), und dann ebenfalls zeichenweise Verglichen und sortiert ausgegeben werden.
Ich hatte schon alles fertig, habe aber anscheinend immer mit ähnlichen Zeichenketten probiert. So kam es im Seminar dann zu Fehlern. Ich hab jetzt nochmal alles neu angefangen und bekomme bereits im 1.Teil (Einlesen der Zeichenketten) folgenden Fehler:
Getestet wurde mit zwei mal 7 Zeichen Tastatureingabe.
Zeichenkette 1 wird richtig erstellt. Kongret werden die ersten 4 Zeichen der Tastatureingabe in Kette1 übernommen. In Zeile 31 wird Kette1 abgeschlossen und dann Kette2 erstellt. Das funktioniert auch so weit, bis auf Zeile 49. Hier wird die Kette1, beginnend mit dem linken Zeichen, mit "\000" überschrieben. Warum????
Quellcode
- #include <stdio.h>
- #include <string.h>
- #define MAX 4
- int main ()
- {
- char kette1 [MAX]; /* Zeichenkette 1 */
- char kette2 [MAX]; /* Zeichenkette 2 */
- char c;
- unsigned int i; /* Zählvariable für Schleifen */
- printf("Vergleich zweier Reihen\n");
- i=0;
- while ( scanf ("%c", &c)==1 && c != '\n')
- {
- if (i<=MAX-1)
- {
- kette1[i]= c;
- i++;
- }
- }
- kette1[i]='\0'; /* Setzen des Endezeichen für Zeichenkette 1 */
- i=0;
- while ( scanf ("%c", &c)==1 && c != '\n')
- {
- if (i<=MAX-1) /* Kontrolle ob max. Zeichenkettenlänge überschritten wird */
- {
- kette2[i]= c; /* Übername von c in Zeichenkette 2 */
- i++; /* Erhöhung Zählvariable */
- }
- }
- kette2[i]='\0'; /* Setzen des Endezeichen für Zeichenkette 2 */
- printf("< %s >\n",kette1);
- printf("< %s >\n",kette2);
- return 0;
- }
Kann mir jemand einen Tip geben was ich hier verkehrt mache? Ich danke Euch für jeden Tip.
viele Grüße
rosch[/i][/i][/i][/i]
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von rosch ()