char a = char b[10] + char c[10]



  • Danke, es hat funktioniert.

    Aber jetzt muss ich einen string to char konvertieren...geht das überhaupt?
    Da bei ofstream ja nur ein char angegeben werden kann. Oder lässt sich da auch irgendwie ein string verwenden?



  • Hallo,

    bei mir gehts so nicht. So sollte es besser gehen:

    char x[]="Wort";
       char *y;
    
       y=strcat(x,"spiel");
       printf(y);
    

    PS: eine string ist nichts anderes als ein CharArray das mit '\0' abgeschlossen ist. Da gibts nicht zu konvertieren.
    grüße Con@n



  • Original erstellt von Con@n:
    **```cpp
    char x[]="Wort";
    char *y;

    y=strcat(x,"spiel");
    printf(y);

    BUMM
    x hat nur platz für "Wort". "spiel" hat keinen Platz mehr -> undefiniertes verhalten.

    und zuweisen tut man strings nicht so:
    char arr[10]="test";
    char arr2[10]="testili";
    arr=arr2;
    sondern
    strcpy(arr,arr2);

    nix für ungut aber: nochmal n bisschen in tutorials lesen



  • nix für ungut aber: nochmal n bisschen in tutorials lesen

    Jaja is mir danach auch aufgefallen, dass es nicht funzt.
    Aber bei strcpy hat er mir auch nur so was komisches hingemacht:

    /* test.c */
    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char txt[4];
    char titel[10];
    char datum[10];
    char name[26];
    scanf("%s", txt);
    scanf("%s", titel);
    scanf("%s", datum);
    printf("Ausgabe:\n");
    printf("%s\n", titel);
    printf("%s\n", datum);
    printf("Kopieren...:\n\n");
    getchar();
    strcpy(name, &titel);
    strcat(name[11], &datum);
    strcat(name[21], &txt);
    printf("Fertig!!!\n");
    printf("Ergebnis:\n");
    printf("Name = %s\n", name);
    getchar();
    }
    

    Eingaben:
    .txt
    1234567890
    0987654321

    Ausgaben:
    12345678900987654321
    0987654321
    Kopieren...:

    Fertig!!!
    Ergebnis:
    123456789009876543211

    Das müsste Falsch sein oder? 😕

    @eizo:
    ein string ist ein char Arrey (wird durch die [] angezeigt)

    [ Dieser Beitrag wurde am 08.03.2003 um 10:30 Uhr von quizzmaster editiert. ]



  • Original erstellt von quizzmaster:
    *```cpp
    /
    test.c /
    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char txt[4];
    char titel[10];
    char datum[10];
    char name[26];
    scanf("%s", txt);
    scanf("%s", titel);
    scanf("%s", datum);
    printf("Ausgabe:\n");
    printf("%s\n", titel);
    printf("%s\n", datum);
    printf("Kopieren...:\n\n");
    getchar();
    strcpy(name, &titel);//warum &
    strcat(name[11], &datum); //name[11] ist n char und kein char

    strcat(name[21], &txt); //und was wenn titel nicht 10 zeichen lang ist sondern nur 5?
    printf("Fertig!!!\n");
    printf("Ergebnis:\n");
    printf("Name = %s\n", name);
    getchar();
    }

    BITTE lies dir grundlegende Sachen zu Zeigern durch!



  • /* test.c */
    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char txt[4];
    char titel[10];
    char datum[10];
    char name[26];
    scanf("%s", txt);
    scanf("%s", titel);
    scanf("%s", datum);
    printf("Ausgabe:\n");
    printf("%s\n", titel);
    printf("%s\n", datum);
    printf("Kopieren...:\n\n");
    getchar();
    strcpy(name, titel);
    strcat(&name, &datum;
    strcat(&name, &txt);
    printf("Fertig!!!\n");
    printf("Ergebnis:\n");
    printf("Name = %s\n", name);
    getchar();
    }
    

    So ises richtig oder?
    Denn bei mir stimmts jetzt 😃

    [ Dieser Beitrag wurde am 08.03.2003 um 13:11 Uhr von quizzmaster editiert. ]



  • Original erstellt von quizzmaster:
    **
    strcat(&name, &datum;
    strcat(&name, &txt);
    So ises richtig oder?
    **

    nein. lass die & weg. du hast doch schon zeiger.
    bei arrays ists nicht schlimm (da wirds AFAIR ignoriert) aber wenn du mal echte zeiger hast, dann crasht es.



  • Ok danke aber es hat funktioniert.
    Und Arrays sind schon zeiger, oder?



  • Original erstellt von quizzmaster:
    Ok danke aber es hat funktioniert.
    Und Arrays sind schon zeiger, oder?

    ich sagte ja: bei arrays funktioniert es.
    arrays und zeiger sind nicht gleich:

    char arr[10];
    ++arr; //fehler



  • Das liegt wohl daran, dass arr ein const char* ist.



  • Original erstellt von WebFritzi:
    Das liegt wohl daran, dass arr ein const char ist.*

    nein, denn ich kann ja
    arr=3;
    sagen.
    kann also nicht
    const char
    sein

    vielleicht meinst du ja char const*

    wenn dem so wäre, dann wäre
    sizeof arr == sizeof (char* const)
    was bei mir leider nicht der fall ist.

    vielleicht solltest du dich auch mit zeigern beschaeftigen?


Anmelden zum Antworten