Char an char* anfügen?



  • HI,
    wie kann man char an char* anfügen ohne sprintf zu benutzen?

    bei folgenem code kommt bei mir immer ein Fehler nämlich in strcat:

    char c;
    char temp1[2];
    	char* temp2 = "";
    
    	temp1[0] = c;
    	temp1[1] = '\0';
    	strcat(temp2,temp1);
    

    MFG zu Dumm?



  • versuch mal

    strcat(*temp2,temp1)
    

    habs jetzt aber nicht probiert, nur so'ne idee



  • Das ist auch kein Wunder, temp2 zeigt auf eine string-konstante, nicht auf ein Speichersegment, das dir gehört und in das du schreiben darfst. Ansonsten, wenns nur um ein Zeichen geht und du wirklich nicht sprintf (oder besser, snprintf) benutzen willst:

    char c = 'o';
    char tmp[10] = "Hell"; // tmp muss groß genug sein, um alles zu fassen, was du reinschreiben willst.
    
    // ...
    
    int x = strlen(tmp);
    tmp[x] = c;
    tmp[x + 1] = '\0';
    

    Im Zweifel ist in C++ aber std::string die sinnvollere Alternative:

    #include <string>
    using namespace std;
    
    // ...
    
    char c = 'o';
    string tmp = "Hell";
    
    tmp += c;
    


  • Nimm doch die Standard-String-Klasse:

    #include <string>
    
    typedef std::string String;
    
    void func( void ) {
       String a = "Hallo";
       a += ',';
       a += " Welt!";
    }
    

Anmelden zum Antworten