char variable



  • Hallo hab mal wieder ne Frage,
    und zwar wenn ich mir ein Programm mach, welches auf eine Eingabe wartet und dann je nach dem welchen Wert ich eingegeben habe dann halt auch ne ausgabe macht. Jetzt hab ich das mit Zahlen von 0-9 emcaht, aber jetzt hab ich da alles belegt, und will jetzt mit der Worteingabe weitermachen, also muss ne char Variable her, nur ich hab keinen Schimmer, wie ich der ein Wort zuweiße, oder wie ich das Wort nacher wieder auswerte, oder ableiche.

    Wollt mal fragen ob mir einer einen kleinen Codfetzen schreiben kann, in welchem des kurz erklärt wird, nur das nötigste.

    Grüße PSPfreak



  • 😕

    Einer char-Variable kannst du kein "Wort" (String?) zuweisen. char beinhaltet nur ein einzelnes Zeichen. Ein String wäre ein char-Array (char*), oder gleich ein std::string (oder mit MFC auch CString).

    Wenn du jetzt einen String eingeben und in einem char-Array lässt, schon mal der Tipp: Vergleichen kannst du char-Arrays nicht mit "==", da nimmt man strcmp...

    Zeig mal ein wenig Code, damit deutlicher wird, was du genau machen willst.



  • _matze schrieb:

    Zeig mal ein wenig Code, damit deutlicher wird, was du genau machen willst.

    so weit bin ich ja noch nich ma, der compiler bringt mir ja fast 40 fehler 😉 ja schon, aber wie mach ich sowas? also win einzelnes zeichen in ne char grig ich hin, aber wie mach ich dann den string mit char und wie vergleich ich des? brauch ja nur ein kleines stück code um mir das ma anzueignen.

    Grüße PSPfreak20072



  • beispiel:

    char *p = "hallo";
    if (0 == strcmp (p, "hallo"))   // zeigt p auf "hallo"?
    {
        // ja
    }
    else 
    {
       // nein
    }
    

    🙂



  • ~fricky schrieb:

    [code]
    char *p = "hallo";

    ja thx aber muss man bei char nicht das immer so machen? 'hallo' und wenn ich jetzt den wert von hallo verändern will geht dass und wenn ja wie? weil ich will nacher einfach in ner while(exit==0) schleife die eingaben testen lassen, und je nach dem die ausgabe bearbeiten.

    Grüße PSPfreak20072



  • ... und wenn ich jetzt den wert von hallo verändern will geht dass und wenn ja wie? ...

    Nein, geht nicht. Wenn du einen veränderlichen Wert haben möchtest musst du das z.B. so

    char p[] = "hallo";
    

    deklarieren



  • also den wert so initialisieren wie du geschrieben hast, und dann aber auch neu zuweißen lassen, später kann ich dann doch noch die abfrage von den strings machen oder?



  • Also wenn du einen String (char-Array) nachträglich verändern willst, dann kannst du entweder direkt ein recht großes Array deklarieren, von dem du dir sicher bist (oder es im Programmablauf sicherstellst), dass die Feldgrenze immer ausreicht.

    char myString[1024];  //char-Array der Länge 1024
    strcpy(myString,"Hallo");  //String füllen
    

    Oder du änderst dynamisch die Größe des Arrays, bevor du es mit neuem Inhalt füllst.

    char *myString;  //char-Pointer
    myString=(char*)malloc(6*sizeof(char));  //6 Bytes Speicher allozieren (in C den Cast weglassen)
    strcpy(myString,"Hallo");  //Zeichenkette von 6 Bytes (mit abschließender 0) reinkopieren
    //erneut die Größe ändern kannst du dann mit realloc
    

Anmelden zum Antworten