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



  • 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