char append



  • hi

    char* hash;
    for(int i = 0; i < 5 ; i++)
             hash += message_digest[i];
    

    gibt mir ne fehlermeldung ... wieso??



  • Weil das nicht geht.

    EDIT: Wenns eine Fehlermeldung gibt, warum postest du die nicht? Meine Kristallkugel ist in Reparatur... 🙄

    Das ist ein char-Zeiger, dem ist erstmal noch kein Speicher zugewiesen. Du könntest ihn auf etwas bereits Bestehendes zeigen lassen oder ihm Speicher zuweisen. Und selbst, wenn er dann auf gültigen Speicher zeigt, kannst du so nicht chars (?) anhängen.

    Wieso fragst du sowas? Wenn du C++ lernst, musst du doch irgendein Buch/Tutorial haben, an dem du dich orientierst. Und da stehen solche Grundlagen ganz, ganz vorne...



  • ach deswegen... xD

    bin neu... und komm aus c#...

    wie macht man das in c++??



  • Du kannst z.B. sowas machen:

    #include <iostream> 
    
    int main()
    {
    	using namespace std;
    
    	char hash[5];
    
    	for( int i = 0; i < 5; i++ )
    		hash[i] = 'i';
    
    }
    

    Aber eigentlich solltest du besser std::string verwenden als ein char array.



  • ich12314125125 schrieb:

    wie macht man das in c++??

    Na ja, was denn genau? Welchen Typ hat message_digest? Ist das ein char-Array? Also stehen da Zeichen drin, die du gerne nach hash kopieren willst?



  • hallo nochmal.

    also...

    unsigned message_digest[5]; //und besteht jeweils aus 8 zeichen...

    for(int i = 0; i < 5 ; i++)
    message_digest[i];

    //das durchläuft ne schleife und ich will die (40) zeichen einfach hintereinander in ein char array einlesen... geht aber iwie nicht...

    ps. die unsigned message_digest[5] is vorimplementiert..



  • ich12314125125 schrieb:

    unsigned message_digest[5]; //und besteht jeweils aus 8 zeichen...

    Also das macht wenig Sinn. Es dürfte schon char oder unsigned char sein. Poste doch bitte mal die Deklaration von message_digest genauso wie sie ist (per Copy&Paste, nicht abgetippt!).



  • Mal ein kleines Beispiel, wie es theoretisch klappen könnte (kommt ja noch drauf an, was sich nun genau hinter message_digest verbirgt):

    char message_digest[5][8];
    strcpy(message_digest[0],"hallo ");
    strcpy(message_digest[1],"welt!");
    
    char hash[40]={0};
    for(int i=0;i<5;++i) {
    	strcat(hash,(char*)message_digest[i]);
    }
    


  • Du könntest std::stringstream benutzten. Das ist in etwa der System.StringBuilder.

    Simon


Anmelden zum Antworten