"iwas" += intwert --> Name eines Strings



  • Hallo,
    ich möchte das der Benutzer eine Zahl eingibt (z.B. 1,2,3,4,5...).
    Also habe ich einen Int-Wert.
    Nun soll ein String der z.B. String1(2,3,4,5,6,7,8,9) heißt ausgegeben werden.
    Meine Idee:

    "String" + die jeweilige Zahl ergibt den Namen des Strings der ausgeben wird.

    Ich hatte zuerst das hier:

    switch(Int-Wert){
    		case 1:
       cout << String1 << endl;
       break;
    		case 2:
       cout << String2 << endl;
        break;
    		case 3:
       cout << String3 << endl;
        break;
    	}
    

    ich finde das allerdings bei der Menge an Strings die Ich habe ziemlich umständlich. Deshalb suche ich nach einer anderen Möglichkeit.

    mfg
    Summernoon



  • Arrays 👍

    string Strings[3] = { "Hallo", "Schöne", "Welt" };
    cout << Strings[IntWert] << endl;
    




  • Danke für die schnelle Antwort,funktioniert einwandfrei.

    Ist es schlecht wenn ich viel (mehrere Texte!) in ein Array schreibe ?
    Also ist das vielleicht zuviel für ein Array ?

    Nebenbei: Was bedeutet diese Fehlermeldung:

    Warnung	1	warning LNK4199: /DELAYLOAD:OleAcc.dll wird ignoriert; keine Importe von OleAcc.dll gefunden.
    

    mfg
    Summernoon



  • Kommt drauf an, ich glaube irgendwo bei nem halben bis ganzen Megabyte ist die Grenze überschritten 🙂 Das kommt daher, dass solche "normalen" Arrays auf dem Stack abgelegt werden. Wenn du dynamische Datenstrukturen wie den std::vector benutzt, kannst du soviel Zeug reinhauen, bis dein Arbeitsspeicher voll ist (und dank Paging noch darüber hinaus).

    #include <vector>
    ...
    vector<string> Strings;
    Strings.push_back( "Hallo" ); // String einfügen
    Strings.push_back( "Welt" );
    cout << Strings[1] << endl; // Zugriff wie bei Arrays
    Strings[0] = "alslkasdm";
    Strings.clear(); // Und leeren
    cout << Strings.size() << endl; // Die Anzahl der strings in dem Container ausgeben (sollte jetzt 0 sein)
    usw.. http://www.cplusplus.com/reference/stl/vector/
    

Anmelden zum Antworten