auslesen von chars schlägt fehl.



  • Hallo habe ein chararray aus dem ein teil der chars auslesen und in ein neues chararray packen will.

    //fill origin string geht ohne probleme
    char *Taskstring = new char[length+1];
    memset(Taskstring, '\0', length+1);
    char byte[1];
    for (int h=0; h < length ;h++){
     byte[0] = file.readUint8();
     strncpy(Taskstring+h,byte,1);
    }
    
    char* partly_string = new char[length]
    memset(partly_string, '\0', length+1);
    
    //nun das teilweise auslesen
    for (int alpha=1;alpha < length ;alpha++){
     partly_string[alpha]=Taskstring[alpha];
    }
    

    Das Problem ist das er keine werte in den partly_string schreibt. Beim Debuggen sind aber die Zeichen bei Taskstring[alpha] zu sehen.
    Es Klappt nur wenn ich mit alpha bei 0 starte. Ich will aber zb. das erste Zeichen wegcutten. Aber das chararray bleibt leider leer.
    Hat vielleicht einer einen hinweis. Hab auch schon mit memset, memcpy versucht die chars zu füllen. Geht aber alles nur wenn ich wie gesagt bei 0 den counter starte. danke für hilfe


  • Mod

    Vergiss alles mit memcpy, memset, strncpy & Co. Am besten auch char-Arrays. Da bist du anscheinend an eine Anleitung für C geraten (die in C++ wegen Abwärtskompatibilität auch funktioniert). Aber in C++ geht das alles wesentlich einfacher. Such mal auf dieser Seite nach den folgenden Stichworten:
    copy, string, vector, fill

    Damit sollte das eigentlich ziemlich leicht sein.



  • naja gut aber am ende muss es leider für das system was ich nutze chararrays sein



  • Dann verwendest du am Ende c_str.



  • schon dabei ;).


Anmelden zum Antworten