main Parameter Dringende hilfe gesucht
-
Hallo miteinander!
Ich muss dringend ein Programm schreiben, diéses soll Parameter kennen, die über der cmd eingelesen werden
mit gets() in ein string feld char szAbfrage[Anzahl+1][81] werte speichern dann die eingelesenen Wörter
a) umdrehen
b)die Länge der Wörter zählen
c) die Wörter alphabetisch sortieren.das folgende Programm habe ich bisher geschrieben! Leider habe ich ein paar Probleme
-
Wie soll ich dem Programm sagen, dass er bei einem leerem String also ASCII '13' die Eingabe über gets () abbricht
-
Irgendwie scheint in diesem Teil
for (j=1; j<ANZAHL ; j++) { szAbfrage[j][81]=Abfrage(j); }
etwas nicht zu klappen, denn ich kann das eingegebene Feld erst gar nicht ausgeben lassen bekomme da immer ne Fehlermeldung!
Geht auch nicht über ne doppelte for schleife!Kann mir jemand helfen? Ist wirklich sehr dringen!
Gruß
# include <stdio.h> # include <string.h> # include <conio.h> # define ANZAHL 4 char* Abfrage() { char AszString[81]; gets(AszString); return AszString; } char* StringUmdrehen(char *szEingabeString) { int i; int j=0; char *pszstring; char *psztemp; char stringtemp[81]; int laenge = strlen(szEingabeString); strcpy(stringtemp, szEingabeString); pszstring=szEingabeString; psztemp=stringtemp; for (i = laenge-1; i >= 0; i--) { *(pszstring+j)=*(psztemp+i); j++; } return szEingabeString; } int main(int arg, char *szString[]) { char szAbfrage[ANZAHL+1][81]; int i=0, j=0; if(arg > 1) { if(strcmp(szString[1],"-u")==0) { for (j=1; j<ANZAHL ; j++) { szAbfrage[j][81]=Abfrage(j); } } else if(strcmp(szString[1],"-l")==0) printf("Und tschuess"); else printf("Unbekannter Parameter\n"); } else printf("kein Argument uebergeben\n"); return 0; }
-
-
es gibt einen aehnlichen thread hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-147742.html
ueberlege dir gut, ob dir dieser thread nicht schon helfen koennte.ausserdem lies:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-136013.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-134691.html
-
zu 1) wenn du nur return drückst, dann gibt gets() eine leere zeichenkette zurück, dh eine zeichenkette, die nur ein \0 enthält. das kannst du leicht prüfen, indem du auf *eingabe=='\0' prüfst.
zu 2) in c sind zeichenketten arrays von chars. und c-arrays kann man leider nicht mit '=' zuweisen. du musst dazu die ansi-c-funktion strcpy() verwenden. die ist in <string.h> deklariert. daß man arrays nicht zuweisen kann bedeutet übrigens auch, daß man sie nicht einfach mit return aus einer funktion zurückgeben kann! return ist nämlich die zuweisung des rückgabewerts an ein register.
-
kommt mir bekannt (vorsicht, spoiler) vor
wieviele besuchen denn die vorlesung?