string array als Rückgabewert einer Funktion



  • HI,

    möchte eine Funktion schreiben, die als Rückgabewert mehrere char strings zurückgibt. Mit char* funktion() kann ich nur ein string zurückgeben, wie kann ich aber mehrere string zurückgeben in Form eines arrays?

    DANKE EUCH



  • vector<string> foo();

    Aber es wäre zu Überlegen ob Du nicht lieber
    void foo(vector<string> * returnData);

    schreibst.



  • kann man dies auch nicht mit der char datenstruktur lösen?
    Wo steht bei deiner Lösung dann der Funktionsname?



  • Servus!

    Wenn du unbedingt mit CharArrays arbeiten willst, so gibt es unter anderem diese Möglichkeit:

    char **func()
    {
       char **array=new char*[100];
       for(int count=0;count<100;count++)
          {
               array[count]=new char[100];
               strcpy(array[count],"blablabla");
          }
       return(array);
    }
    
    //draussen kannst du dann auf alle 100 CharArrays zugreifen(also über 
    //'array[<index>]') ==> aber das 'delete' für alle CharArrays
    //und das dynamisch angelegte PointerArray nicht vergessen
    

    Hoffe, das hilft dir weiter!

    Grüße,
    TS++



  • Danke, das hilft mir schon weiter. Mich interessier aber trotzdem noch, wie der Code aussieht, wenn man dies mit dem string Datentyp löst. Bin neu in C++ eingestiegen und habe bis jetzt nur char benutzt.

    Wäre interessant!



  • Um bei den Arrays zu bleiben:

    #include <string>
    
    std::string *func()
    {
       std::string *strArray=new std::string[100]; 
       for(int count=0;count<100;count++)
          {
              strArray[count]="blablabla";
          }
       return(strArray);
    }
    
    int main(int argc, char *argv[])
    {
      std::string *array=func();
      //'array' verwenden
      delete []array;
      return 0;
    }
    

    Grüße,
    TS++



  • DANKE


Anmelden zum Antworten