2016-04-10 11 views
-3

Mit diesem Code unten weiß ich nicht, wie die unerwünschten Zeichen am Ende des Nachrichtenarrays gelöscht werden. Es ist obligatorisch für mich, Zeichen zu verwenden, kann keine Zeichenfolgen wegen des Rests meines Codes verwenden. recvbuf ist auch ein char * recvbuf = new charLöschen von unerwünschten Zeichen am Ende eines Chars

   char* message=new char[140]; 
       for (int i=1; i<141; i++){ 
        message[i-1]=recvbuf[i]; 
       } 
       printf("Message: %s\n", message); 
       delete[]recvbuf; 

Antwort

0

Obwohl es wird empfohlen, Sie Strings verwenden Sie diesen Code zu implementieren, kann das Problem manuell fixiert werden, indem ein Nullzeichen \0 am Ende Ihres char-Array angehängt wird.
Sie können es als vorstellen:

char* message=new char[141]; 
    for (int i=1; i<141; i++){ 
     message[i-1]=recvbuf[i]; 
    } 
    message[140] = '\0'; //newly introduced line. 
    printf("Message: %s\n", message); 
    delete[]recvbuf; 

Anmerkung 1: Die Größe des Arrays 140 bis 141 während der Initialisierung erhöht wurde am Ende Platz für den \0 Charakter zu machen.

Prost!

Verwandte Themen