Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » HIILLFFEEEE

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ] [ 7 ]
020
20.05.2006, 13:50 Uhr
~Stephi
Gast


Des ist so vorgegeben, dass ich mit -u und -l etc. irgendwelche Unterfkt. aufrufe.. Warum auch immer.
Naja. Aber mit deiner Variante funktionierts wunderbar. Danke erstma! Wenn ichs richtig verstanden habe, vergleicht des strcmp die Strings..?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
20.05.2006, 13:52 Uhr
Spacelord
Hoffnungsloser Fall


Ja das ist richtig.
C Zeichenketten musst du immer mit strcmp vergleichen(und -u ist eine Zeichenkette).

Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
20.05.2006, 15:01 Uhr
~Stephi
Gast


Also jetzt muss ich doch nochmal was fragen. Komme einfach nicht voran.

Er nimmt mir in der main-Fkt das hier nicht an
Code:
szAbfrage=Abfrage(arg);
.
Was meint er mit "L-Wert" bei der Fehlermeldung?





Code:

# include <stdio.h>
# include <string.h>
# define ANZAHL 20



char Abfrage(int arg)
{
   char AszString;
   while (arg<ANZAHL)
    {
        gets(AszString);
        arg++;
                }
return AszString;
}



char* StringUmdrehen(char string[81])
{
    int i;
    int j=0;
    char *pszstring;
    char *psztemp;
    char stringtemp[81];


    int laenge = strlen(string);

    strcpy(stringtemp, string);
    pszstring=string;
    psztemp=stringtemp;

    for (i = laenge-1; i >= 0; i--)

    {
    *(pszstring+j)=*(psztemp+i);
    j++;
      
    }
    return string;
}



int main(int arg, char *szString[])
{
    char szAbfrage[ANZAHL+1][81];
    if(arg > 1)


{
    if(strcmp(szString[1],"-u")==0)
    szAbfrage=Abfrage(arg);
    printf("\n%s",StringUmdrehen(szAbfrage));


    
    else if(strcmp(szString[1],"-l")==0)
        printf("Und tschuess");
    else
        printf("Unbekannter Parameter\n");
}
else
    printf("kein Argument uebergeben\n");

  return 0;
}
    

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
20.05.2006, 15:16 Uhr
Spacelord
Hoffnungsloser Fall


Uuuuh,das ist ganz finster .
Am besten erklärst du erstmal was du machen möchtest.
Ansonsten liefert Abfrage nen einzelnes char zurück aber szAbfrage ist vom Typ: 21 char Arrays der Länge 81.Das sollte bei der Zuweisung Probleme geben.
Ist der Prototyp von Abfrage so vorgegeben ?

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 20.05.2006 um 15:19 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
20.05.2006, 15:25 Uhr
~Stephi
Gast


Ich solls mit einer gets()-Fkt einlesen. Verlier allmählich die Übersicht

Also ich fasse mal ganz kurz die Aufgabenstellung zusamm': Bestimmte Funktionalitäten sollen parametergesteuert ausgeführt werden können. Gut des könnte so weit hinhauen.. Die Funktionaltiäten sind String umdrehen, Strings nach Länge sortieren, und Strings alphabetisch sortieren.. Die Wörter selbst sollen mit gets() in ein String-Feld der Größe [ANZAHL][81] gespeichert werden. gets() verwirrt mich irgendwie.. Wenn ein Leerstring eingegeben wird soll die ABfrage aufhören. Nur damit du weißt, worauf ich hinaus will.. Ist noch ein weiter weg..

Und was ich jetzt grad konkret machen möchte ist, dass ich jetzt grad erstmal für StringUmdrehen die Werte einlesen möchte. Bei den anderen Funktionalitäten möchte ich dann auch einfach auf die Unterfkt "Abfrage" verweisen. Dacht des erspart mir Schreibarbeit?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
20.05.2006, 16:23 Uhr
~Stephi
Gast


Ich verwende einen Strin-Array. Den kann ich scheinbar nicht mit "=" zuweisen.
Hat jemand eine Ahnung wie ixh das umgehen kann?

Code:

int main(int arg, char *szString[])
{
    char szAbfrage[ANZAHL+1][81];
    if(arg > 1)


{
    if(strcmp(szString[1],"-u")==0)
    szAbfrage=Abfrage(arg);
    printf("\n%s",StringUmdrehen(szAbfrage));

...

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
20.05.2006, 17:33 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wiso willst du da überhaupt was "zuweisen" bzw kopieren... du kannst doch mit dem übergeben array arbeiten?

um "strings" zu kopieren kannst du die funktion strcpy nehmen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
20.05.2006, 18:10 Uhr
~Stephi
Gast


Hm ´mit welcher Variabeln denn mit der von oben übergebenen?
Die ist doch dann gar nicht allgemein gültig oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
20.05.2006, 18:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


was meinst du mit allgemein gültig?

int arg, char *szString[] sind bei dir innerhalb der kompletten mainfunktion gültig, also so lange bis das programm zu ende ist...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
20.05.2006, 19:40 Uhr
Spacelord
Hoffnungsloser Fall


Also wenn die Strings erst noch mit gets eingelesen werden sollen (/müssen) ,könnte eine Lösung in etwa so aussehen:

C++:
# include <stdio.h>
# include <string.h>
# define ANZAHL 20

size_t halbwegs_sichere_eingabe(char s[81])
{
    int len=0;
    char buf[1024];
    gets(buf); //gets ist gefaehrlich!
    len=strlen(buf);
    if(len>80)
    {
        strncpy(s,buf,80);
        s[80]='\0';
    }
    else
    {
        strncpy(s,buf,len);
        s[len]='\0';
    }
    return len;
}

void Abfrage(char arr[ANZAHL][81])
{
    size_t i=0;
    while (i<ANZAHL)
    {
        if(!halbwegs_sichere_eingabe(arr[i]))
            break;
        else
            ++i;
    }
}

char* StringUmdrehen(char string[81])
{
    int i;
    int j=0;
    char *pszstring;
    char *psztemp;
    char stringtemp[81];

    int laenge = strlen(string);

    strcpy(stringtemp, string);
    pszstring=string;
    psztemp=stringtemp;

    for (i = laenge-1; i >= 0; i--)
    {
    *(pszstring+j)=*(psztemp+i);
    j++;
      
    }
    return string;
}

int main(int arg, char *szString[])
{
    char szAbfrage[ANZAHL][81];
    if(arg > 1)
{
    if(strcmp(szString[1],"-u")==0)
    {
        Abfrage(szAbfrage);
        for(int j=0;j<ANZAHL&&(strlen(szAbfrage[j])>0);++j)
            printf("\n%s",StringUmdrehen(szAbfrage[j]));
    }
    else if(strcmp(szString[1],"-l")==0)
        printf("Und tschuess");
    else
        printf("Unbekannter Parameter\n");
}
else
    printf("kein Argument uebergeben\n");

  return 0;
}



Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 20.05.2006 um 19:44 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ] [ 7 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: