char to const char* bringt mich um den Verstand



  • zusammenhanglose Frage -> zusammenhanglose Antwort
    [code]
    #include <iostream>
    #include <string>
    #include <conio.h>

    using namespace std;
    string rueckwaerts_ausgabe (string);

    void main()
    {
    string eingabe;
    cout<<"Bitte geben Sie einen Text ein.\n";
    cin>>eingabe;
    eingabe=rueckwaerts_ausgabe(eingabe);
    cout<<eingabe;
    getch();

    }

    string rueckwaerts_ausgabe (string text)
    {
    string erg="";
    string::size_type res;
    res = text.size();
    for (int i = res; i>0; i--)
    {
    erg = erg + text[i-1];
    }

    return erg;
    }[code]
    ich kriegs ja nicht mal gebacken den code in nem codefenster auszugeben . lol
    Viel spass noch



  • char to const char*

    Sollte nicht gehen.

    char* to const char*

    Sollte implizit gehen.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Du programmierst ja ganz offensichtlich kein ANSI C, sondern C++! Und deine Verwendung von strncpy (was man ohnehin nicht benutzen sollte), ist auch nicht sehr sinnvoll.

    #include <iostream>
    #include <cstring>
    
    int main()
    {
        std::cout<<"Bitte irgendetwas eingeben: ";
        char inputText[256];
        std::cin.getline(inputText, 256);
        std::cout<<"\nHier das Eingegebene, nur umgedreht: ";
    
        char outputText[256];
        std::size_t const len = strlen(inputText);
        for(std::size_t i = 0; i < len; ++i)
        {
            outputText[i] = inputText[len - i -1];
        }
    
        std::cout<<outputText<<std::endl;
    
        return 0;
    }
    

    alternativ natürlich so

    #include <algorithm>
    #include <iterator> 
    #include <iostream>
    #include <string>
    
    int main() {
      std::string in;
      std::getline(std::cin, in);
    
      std::reverse_copy(in.begin(), in.end(),
                        std::ostream_iterator<char>(std::cout));
      std::cout << std::endl;
    }
    


  • mayokleckz schrieb:

    ich kriegs ja nicht mal gebacken den code in nem codefenster auszugeben . lol

    Indem du das abschließende Tag mit einem / schreibst:
    [code]bla[/code] ->

    bla
    

    @Mister: schau dir mal std::string an, dann wirds mit dem Einlesen einiges leichter, und mit dem rückwärts ausgeben auch.



  • Hallo,
    vielen Dank für die Antworten.

    Ich denke, es war wirklich ein wenig hohl, aber ich bin noch ein wenig draußen, da ich lange nicht mehr in C++ programmiert habe. In C# ist das alles ein wenig einfacher...



  • Ich habe es jetzt so gelöst:

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::cout<<"Bitte irgendetwas eingeben: ";
        std::string inputText("");
        getline(std::cin, inputText);
        std::cout<<"\nHier das Eingegebene, nur umgedreht: ";
    
        std::string outputText("");
        for(int i = inputText.size() - 1; i >= 0; i--)
        {
    
            outputText.append(&inputText[i], 1);
        }
    
        std::cout<<outputText<<std::endl;
    
        return 0;
    }
    

    Danke noch einmal 🙂



  • Mister schrieb:

    ...In C# ist das alles ein wenig einfacher...

    Na ... viel einfacher als

    rüdiger schrieb:

    ...

    std::string in;
      std::getline(std::cin, in);
    
      std::reverse_copy(in.begin(), in.end(),
                        std::ostream_iterator<char>(std::cout));
      std::cout << std::endl;
    }
    

    wird's wohl auch mit C# nicht gehen, oder? 😉

    Gruß,

    Simon2.



  • Nein, das stimmt schon 😉

    Aber hatte mich glaube ich falsch ausgedrückt. Ich meinte damit dieses ganze Pointer- und Referenzengefummel... Das bringt mich manchmal um den Verstand 😛

    Aber mit der STL wird es, wie man sieht, um einiges leichter 🙂



  • Mister schrieb:

    ...Ich meinte damit dieses ganze Pointer- und Referenzengefummel... Das bringt mich manchmal um den Verstand :P...

    deswegen macht man das ja möglichst auch nur da, wo man es wirklich braucht. 😉

    Gruß,

    Simon2.


Anmelden zum Antworten