Fehler in zufalls string Funktion



  • char rand_alpha()
    {
      char c;
      do{
        c = static_cast<char>(std::rand()%256);
      }while ( !std::isalpha( c ) ); 
      return c;
    }
    
    string rand_alpha_str (string::size_type sz)
    {
      string s;
      s.reserve(sz);
      generate_n(std::back_inserter(s), sz, rand_alpha);
      return s;
    }
    

    Hi,

    --edit: okay die anzeige von sz war ein debugger problem, der wert wird richtig übergeben, funktioniert aber trotzdem nicht.

    so rufe ich es auf:

    string A = rand_alpha_str(8);
    


  • was heißt denn, funktioniert nicht?



  • Das funktioniert ganz wunderbar.



  • funktioniert nicht heißt, das bei mir nen string aus "schlechten pointern" herrauskommt, oder zumindest nennt es visual studio so.

    Athar schrieb:

    Das funktioniert ganz wunderbar.

    würd ich vom code her auch sagen, aber mein compiller mag es wohl nicht :|



  • also dein bsp. hat bei mir wunderbar funktioniert...

    poste doch mal ein compilier-fähiges minimal-bsp. und sag, was bei dir passiert und was du erwartet hättest!?

    bb

    edit: dennoch würd ich die rand_alpha_str-Funktion anders schreiben - aber das sollte nicht der Fehler sein:

    std::string rand_alpha_str(std::string::size_type length)
    {
    	std::string s(length);
    	std::generate(s.begin(), s.end(), rand_alpha);
    	return s;
    }
    

Anmelden zum Antworten