problem mit strcpy



  • Ich habe ein ganz kurze Frage, wie kann ich diesen String zusammen montieren.

    //...
          int ix;
          ix = 2;
    //....
          char text[50];
          strcpy(text,"Spieler " + IntToStr(ix) + " hat gewonnen!");
          //hier kommt immer folgende Fehlermeldung
          //[C++ Fehler] Unit1.cpp(686): E2034 Konvertierung von
          //'AnsiString' nach 'const char *' nicht möglich   
    //...
    


  • Versuchs mal mit:

    char text[50];
     strcpy(text,"Spieler ");
     strcpy(text,IntToStr(ix));
     strcpy(text," hat gewonnen!");
    

    Du kannst keine Addition von Strings durchführen mit ANSI C SOnst bräuchtest Du kein strcpy mehr 🙂



  • Danke für die schnelle Antowort,
    weiß das es so geht, dachte nur könnte mir so Zeit sparen.

    Aber wenn es nicht geht, muss ich es halt so machen wie du es geschrieben hast.



  • Aber irgendwas sagt mir, dass das nicht das Resultat bringt, dass Du haben möchtest 😉 Am Ende enthält text nämlich nur " hat gewonnen" und der Rest ist futsch. Wenn Du einen String an einen anderen anhängen möchtest, musst Du die Funktion strcat() benutzen



  • Ich würds so machen:

    #include<stdio.h>
    #define MAX 200
    
    int main()
    {
    
            char *name="Verlierer";
            char endstring[MAX];
    
            snprintf(endstring, MAX, "Spieler %s hat gewonnen", name);
    
            printf("%s\n", endstring);
    }
    


  • NobbZ schrieb:

    char text[50];
     strcpy(text,"Spieler ");
     strcpy(text,IntToStr(ix));
     strcpy(text," hat gewonnen!");
    

    wohl eher

    char text[50];
     strcpy(text,"Spieler ");
     strcat(text,IntToStr(ix));
     strcat(text," hat gewonnen!");
    

    Die snprintf Variante ist aber schöner



  • Die Tatsache hab ich übersehen... Ich arbeite sonst eher mit c++ und da sowieso mit den std::string da ist ja zum glück das "addieren" einfacher möglich


Anmelden zum Antworten