Variablen



  • Wie kann man z.b. eine int und eine char Variable in eine string Variable kopieren ?
    😕 😕 😕



  • Also mit strcpy allein geht das nicht. Ich hab das immer so gemacht

    #include <string.h>
    
    char ch='A',string1[1],string2[10];
    string[0]=ch;
    string[1]='\0';
    strcpy(strting2,string1);
    

    Hoffe ich konnte helfen. 😉

    [ Dieser Beitrag wurde am 29.06.2003 um 19:31 Uhr von W@lly editiert. ]



  • FAQ



  • Original erstellt von W@lly:
    **Also mit strcpy allein geht das nicht. Ich hab das immer so gemacht

    #include <string.h>
    
    char ch='A',string1[1],string2[10];
    string[0]=ch;
    string[1]='\0';
    strcpy(strting2,string1);
    

    Hoffe ich konnte helfen. 😉

    [ Dieser Beitrag wurde am 29.06.2003 um 19:31 Uhr von [qb]W@lly** editiert. ][/QB]

    Schön und gut,...
    ...wenn der bloodshed dev C++ kompiler das noch fehlerfrei kompilieren würde...!!! 😞



  • [cpp]
    #include <string.h>

    char ch='A',string1[1],string2[10];
    string1[0]=ch;
    string1[1]='\0';
    strcpy(strting2,string1);[/cpp]



  • char ch='A',string1[1],string2[10];
    

    Wieviel Bytes hat String1? Genau eins...

    string1[0]=ch;
    string1[1]='\0';
    

    Aber hier schreibst du plötzlich auf das zweite Byte, das gar nicht existiert!



  • Am ALLER EINFACHSTEN!! wäre ja folgendes:

    char ch='A',str[2];
    *str=ch;
    str[1]='\0';
    

    🙄

    [ Dieser Beitrag wurde am 30.06.2003 um 20:25 Uhr von Cyphexx editiert. ]



  • Nö, am einfachsten wäre folgendes:

    char c = 'a';
    const char str[] = {a, 0};
    

    😃

    edit:
    Die Arraygrenze (die 2) kann man sich sparen. str[] reicht völlig.

    [ Dieser Beitrag wurde am 30.06.2003 um 22:18 Uhr von cd9000 editiert. ]



  • 😡
    ICH MEINE KEINE CHAR ODER INT VARIABLEN !!!!
    ICH MEINE STRING VARIABLEN !!!!
    😡



  • Habt ihr denn noch nie was von SPRINTF gehört?!?

    #include <stdio.h> //von mir aus auch: #include <stdio>
    
    ...
    
    char zeichen='a';
    int zahl=10;
    char text[10];
    
    sprintf(text, "%c,%i", zeichen, zahl); //danach steht in text: a,10
    
    ...
    

    Wenn es um die String-Klasse geht, dann kann man einfach + hernehmen.



  • Original erstellt von bbmaze:
    😡
    ICH MEINE KEINE CHAR ODER INT VARIABLEN !!!!
    ICH MEINE STRING VARIABLEN !!!!
    😡

    Du musst nicht so schreien.
    Da du nicht im C++ Forum gepostet hast, sind wir davon ausgegangen, dass du mit "string-Variablen" char[] meinst.
    Du musst deine Frage präzisieren.

    Meinst du die Klasse std::string von C++?



  • #include <iostream.h>
    #include <string.h>
    
    string str("Nur ein Tes");
    str+='t';
    str+=" um zu zeigen dass das ";
    str.append("sehr gut funzt.");
        //ersetzen wir mal "Test" durch "Beispiel"
    str.replace(8, 4, "Beispiel");
    cout << str;
    


  • Original erstellt von Cyphexx:
    **```cpp
    #include <iostream.h>
    #include <string.h>

    string str("Nur ein Tes");
    str+='t';
    str+=" um zu zeigen dass das ";
    str.append("sehr gut funzt.");
    //ersetzen wir mal "Test" durch "Beispiel"
    str.replace(8, 4, "Beispiel");
    cout << str;

    Das ist nicht ganz korrekt. Du musst die header <string> und <iostream> (ohne .h am Ende!) nehmen. Die mit .h sind veraltet und sollten nicht mehr verwendet werden. Vor allem steht die Klasse std::string gar nicht in <string.h> drin, d.h. das Beispiel dürfte sich gar nicht compilieren lassen.



  • Original erstellt von cd9000:
    **Das ist nicht ganz korrekt. Du musst die header <string> und <iostream> (ohne .h am Ende!) nehmen. Die mit .h sind veraltet und sollten nicht mehr verwendet werden.
    **

    Also müssen tut er schon gar nicht. Und warum sollte man .h nicht verwenden, nur weil es zu einer älteren Syntax gehört? Ist es nicht auch so, dass das weglassen von .h erst durch C++ eingeführt wurde? Was machst du dann bei einem einfachen C-Compiler?? Gegen deine eigene "Regel" verstoßen? Ich vermute mal man "darf" auch kein void vor main machen, oder??



  • Hi,

    bei einem einfachen C-Compiler wirst Du auch kaum eine Stringklasse benutzen können, weil die einfach zu C++ gehört. in der <string.h> stehen aber die "alten" C-Funktionen a'la strcpy, strcmp.

    grüße Con@n


Anmelden zum Antworten