Einen String umdrehen und vergleichen

FaNo86

Mitglied
Hi ich habe folgendes Problem und zwar will ich ein String (Zeichenkette) umdrehen in einem anderen String speichern und dann vergleichen bis jetzt bin ich soweit gekommen doch wenn ich den string umdrehe hängt es mir jedes mal irgendwelche Zeichen hinten an.
Code:
#include <iostream>

using namespace std;

int main()
{
    
    char pal[20];
    char dreh[20];
    int j=0;
    
    cout<<"Bitte ein Wort oder Satz ein geben: "<<endl;
    cin.getline(pal,20);
    
    for(int i=strlen(pal)-1;i>=0; i--)
    {
            dreh[j++]=pal[i];
            
            
    }
cout<<dreh;




cout<<endl;
system("pause");
return 0;
}
 
Hallo

füge doch mal vor dem cout << dreh;

Diese Zeile ein:
Code:
dreh[j] = "\0";

ich vermute das "dreh" Feld besitzt keine Ende Markierung
und füllt es dann mit irgendwelchem Mist.

MfG Turri
 
Turri hat gesagt.:
Code:
dreh[j] = "\0";
Wohl eher ein
Code:
dreh[j] = '\0';
;)

Nur so als Anmerkung:
Wieso verwendest du nicht die stl. Die hat dafuer speziell formulierte
Algorithmen, da kann sowas nicht mehr passieren. In deinem Bsp brauchst du
reverse:

Code:
#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

int main(){
    string input = "";
    cin >> input;
    string revrs = input;
    reverse(revrs.begin(), revrs.end());
    cout << input << endl << revrs << endl;
}


Gruß

RedWing
 
Ja so funktioniertes vielen Dank für eure Antworten.
Ich mache es so weil weil wir es in der Schule so machen müssen
aber trozdem danke für den Tipp

mfg Fabi
 
Hi zusammen,
ich habe mal eine Frage kann ich nach der eingabe eines Satzes/Namen feststellen wieviele stellen der Satz oder Name hat ?

Weil ich hab ein Problem mit meinen ersten versuchen in sachen Array...:)
zur Erklärung, ich versuche gerade C++ zu lernen und stelle mir dazu immer selbt Aufgaben bzw. ich überlege mir was, und versuche es dann umzusetzten.

Mein Ziel hiermit ist nach einem Namen zu Fragen und diesen dann rückwerts wieder auszugeben,
aber ich bräuchte einen Befehl bzw. eine abfrage wieviele stellen der Name hat, um zu vermeiden das er mir bei den überschüssigen leeren Felder irgendwelche Zeichen ausspuckt...

ich finde zwar hier Befehle wie es gehen würde aber mein Ziel ist ja nicht Copy and Paste aus Foren ;)

Und kann mir jemand ein Buch empfelen das auch wirklich für dumme und gut ist ;) weil ich habe zwar jetzt schon in einige Bücher reingelesen,
aber irgendwie sind die oft schlecht verständlich und ohne Vorwissen kommt man bei den meisten nicht alleine klar....

anbei mal mein bisheriger quelltext :)
nicht wundern sind ja meine ersten versuche...:)

Danke schonmal im vorraus...
Code:
// Erster Test Array !!
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>

using namespace std;
main (void)
{
int i=19;
char name[20];

     cout<<"Bitte geben sie Ihren Namen ein: ";
     cin.getline (name,20);
     cout<<"Guten Tag, "<<name<<"! "<<endl;
     cout<<"Ihr name Rückwerts geschrieben Lautet:";
     
while (i>=0)
{      
         cout<<name[i];
         i--;
}

         cout<<"\nDanke"<<endl;
     
system("Pause");
}
 
Zurück