umkehren einer Zeichenfolge mit Zeigern

Ich muss zugeben, ich habe keine Ahnung, wie man Zeiger verwenden, aber ich habe versucht, nicht weniger. das problem mit meinem Programm ist, dass es zeigt die Zeichenfolge in umgekehrter, außer für das, was war der erste Buchstabe zu fehlen, und der komplette string wird verschoben, um ein Leerzeichen vorwärts mit dem ersten element leer ist.
zum Beispiel zeigen die "olle" bei der Eingabe "Hallo".

#include <iostream>
#include <string>

using namespace std;

string reverse(string word);

int main()
{
char Cstring[50];
cout<<"enter a word: ";
cin>>Cstring;
string results = reverse(Cstring);
cout <<results;
}

string reverse(string word)
{
    char *front;
    char *rear;
    for (int i=0;i< (word.length()/2);i++)
    {
            front[0]=word[i];
            rear[0]=word[word.length()-i];
            word[i]=*rear;
            word[word.length()-i]=*front;
    }
    return word;
}

Der neue code funktioniert perfekt. geändert Saiten cstrings. die Frage technisch gebeten, für cstrings, aber ich finde strings leichter, so dass ich mit Zeichenfolgen zu arbeiten, dann machen die notwendig, änderungen zu machen, c string. herausgefunden ho initialisieren der Rückseite und front.

#include <iostream>
#include <cstring>

using namespace std;

string reverse(char word[20]);

int main()
{
char Cstring[20];
cout<<"enter a word: ";
cin>>Cstring;
string results = reverse(Cstring);
cout <<results;
}

string reverse(char word[20])
{
    char a='a';
    char b='b';
    char *front=&a;
    char *rear=&b;
    for (int i=0;i< (strlen(word)/2);i++)
    {
            front[0]=word[i];
            rear[0]=word[strlen(word)-1-i];
            word[i]=*rear;
            word[strlen(word)-1-i]=*front;
    }
    return word;
}
Ich habe das Gefühl, dass Ihr code funktioniert, durch schiere Glück. Sie sind mit (Dereferenzierung) zwei char Hinweise, die Sie noch nicht initialisiert ist, wird front und rear.
Sie haben nicht zugewiesenen Speicher für front und rear sind, so sind Sie Berufung ein Undefiniertes Verhalten bei der Verwendung von front[0] und rear[0]. Abgesehen davon, dass der Letzte index des Wortes ist word[word.length() - 1] ist und Sie sollten word[word.length() - 1 - i].
also, was ich zu initialisieren, alle alten Charakter oder etwas bestimmtes, als ich gesagt habe, ich bin ganz neu mit Zeigern.
"ich habe keine Ahnung, wie Zeiger verwenden" — gut, das hier planet braucht weniger Zeigern und mehr gesund, für Menschen lesbaren code. Bitte helfen Sie, die Welt Stempel aus Zeigern, indem Sie sich weigern, Sie zu erlernen.
ok. ich sehe, denke ich mir. also im Grunde versuche ich, t Zugriff auf eine nicht existente element in word.

InformationsquelleAutor user2420395 | 2013-06-19

Schreibe einen Kommentar