Teil eines Strings einer Variable zuweisen



  • Also Folgendes:
    Ich hab 3 Eingaben. Das Ende und Anfang jeder Eingabe hab ich als Zahl in einem Array gespeichert. Wie kann ich jetzt die Wörter auswerten, also zum Beispiel mit "login" oder "anmelden" vergleichen und daraufhin je eine Funktion starten?



  • Also folgendes:
    Dein Problem ist unzureichend erklärt und würde enorm von etwas mehr Text oder sogar Quellcode profitieren. Strings vergleicht man im Übrigen mit strcmp oder strncmp (letzteres sollte bevorzugt werden).



  • Ich stelle mir dein Problem so vor: du hast ein char-Array und von a1 bis a2 geht das erste Wort, von b1 bis b2 das zweite und von c1 bis c2 das dritte. Jetzt möchtest du das erste Wort auswerten (das einen Befehl darstellt) und die übrigen Wörter als Parameter davon ansehen.

    Nur geht das nicht ganz auf, warum hast du die Wörter als Array vorliegen und liest sie nicht einzeln ein? Das geht nämlich mittls scanf("%s %s %s", a, b, c) und schon hast du drei handliche Variablen. Problem am Ursprung beseitigt.

    Daher: sei viel genauer und sage uns auch etwas vom Hintergrund.



  • #include <stdio.h>

    char eingabe[100], befehl;
    char wort[6];
    int anmelden(int);
    int login(char,int);
    int kontostand(int);
    int konto[100], aktien[700], neu[7];
    int m;

    int main()
    {
    int n,s,o;

    fgets(eingabe,100,stdin);
    printf("%s""%s",eingabe[0],eingabe[1]);
    n=0;
    s=0;
    o=0;
    while (eingabe[0+n]!=' ')
    n++;

    while (eingabe[n+s+1]!=' ')
    s++;

    while (eingabe[n+s+o]!='\0')
    o++;

    wort[0]=(0);
    wort[1]=("%d",n-1);
    wort[2]=("%d",n);
    wort[3]=("%d",n+s-1);
    wort[4]=("%d",n+s);
    wort[5]=("%d",s+o-1);

    Das ist mein bisheriger Quelltext.
    Scanf kann ich nicht verwerden, da manchmal die Eingabe
    nur
    "anmelden" oder "einzahlen summe" oder auch "kaufe aktie stückzahl ist.

    Also an 2. oder 3. Stelle eine Zahl.

    Das Array wort speichert Anfang und Ende jeder Eingabe. Und ich möchte jetzt die Eingabe von wort[0] bis wort[n-1] als ganzes Wort einer Variablen zuweisen und diese dann mit vorgegebenen Funktionen, wie login, anmelden, einzahlen usw. vergleichen. Wenn ein Vergleich wahr ist, soll dann eine Funktion gestartet werden.

    War das präzise genug?



  • Schau dir mal die Funktionen aus <string.h> und <ctype.h> http://www.cplusplus.com/reference/clibrary/cstring/

    strcpy(), strncpy(), strchr(), ..., evtl. strtok()
    isspace(), isalpha(), ...

    Tipp: Ein char ist ein Ganzzahltyp der i.A. Werte von -128 bis +127 aufnehmen kann.
    Da es ein Ganzzahltyp (wie int) ist, kannst du ihm einfach einen Wert zuweisen: wort[3] = n+1;

    Nimm bei wort[6] int als Typ.

    Überdenke nochmal das Konzept der Eingabe.


Anmelden zum Antworten