inverser une chaîne de caractères en utilisant les pointeurs

Je dois l'avouer, je n'ai aucune idée de comment utiliser les pointeurs, mais j'ai essayé d'autres moins. le problème avec mon programme, c'est qu'il montre la chaîne dans le sens inverse, sauf pour ce qui était de la première lettre étant absent et l'ensemble de la chaîne est déplacé d'une case en avant avec le premier élément étant vide.
par exemple, il show "olle" lors de la saisie de "bonjour".

#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;
}

Le nouveau code fonctionne parfaitement. changé les cordes de cstring. la question techniquement demandé cstring mais je trouve que les chaînes de plus facile donc je travaille avec des cordes, puis faire le nécessaire changements pour le rendre c de la chaîne. compris ho pour initialiser l'arrière et à l'avant ainsi.

#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;
}
J'ai le sentiment que votre code fonctionne par pure chance. Vous êtes à l'aide de (déréférencement) deux char pointeurs que vous n'avez pas initialisé, front et rear.
Vous n'avez pas la mémoire allouée pour front et rear, de sorte que vous êtes en invoquant un comportement indéterminé lors de l'utilisation de front[0] et rear[0]. En dehors de cela, le dernier indice de la parole est word[word.length() - 1] et vous devez l'utiliser word[word.length() - 1 - i].
alors, que dois-je initialiser à, tous les anciens de caractère ou de quelque chose de spécifique, comme je l'ai dit je suis tout à fait nouveau pour les pointeurs.
"je n'ai aucune idée de comment utiliser les pointeurs" — bon, ici cette planète a besoin de moins de pointeurs et plus sain d'esprit, de l'homme-un code lisible. Veuillez aider le monde à éradiquer les pointeurs en refusant de les apprendre.
ok. je vois, je pense. donc, fondamentalement, je suis en train de t non nulle élément dans word.

OriginalL'auteur user2420395 | 2013-06-19