3 déclarer la fonction inverse comme suit :
void reverse (char * txt, char * newTxt ) {
Cette fonction lit la chaîne de caractères à partir de l'adresse mémoire stockée dans "txt" puis copie dans l'ordre inverse de la mémoire pointée par " newTxt . " La fonction suppose que suffisamment de mémoire a été alloué pour la nouvelle chaîne
4
créer un pointeur caractère "c" comme suit : .
Char * c = txt + strlen (txt) ;
Le pointeur de caractère "* c" n'est rien de plus qu'un endroit pour stocker une adresse mémoire . Initialiser en récupérant l'adresse dans "txt ", puis ajouter la longueur de la chaîne de texte
5
Copiez le texte ci-dessous en utilisant la boucle "while" : .
While ( c > txt) {
c - ;
* newTxt = * c ;
newTxt + +; }
Déplacez le "c" pointeur en arrière d'un caractère ( il a été initialisé un caractère après la fin de la chaîne de texte ) . Une fois que vous avez le dernier caractère, le copier sur le premier caractère de la nouvelle chaîne comme indiqué par " newTxt . " Avancer le pointeur " newTxt " avant d'un caractère . La seconde fois , copiez le next- to-the- dernier caractère de la chaîne "txt" pour le second caractère de la chaîne " newTxt " . Cela continue jusqu'à ce que vous revenez au début
6
Ajoutez un zéro à droite de la chaîne " newTxt " et terminer la fonction
* newTxt = 0; . .
< p> }
En C + + , toutes les chaînes texte fin avec un zéro binaire
7
Ajoutez le code pour tester la fonction comme suit : .
int _tmain ( int argc, _TCHAR * argv [ ] ) {
char * txt = " Quatre scores et il ya sept ans ...";
char * newTxt ;
newTxt = (char *) malloc ( strlen (txt) +1);
inverse ( txt, newTxt ) ;
printf ( "% s \\ n", newTxt ) ;
libre ( newTxt ) ;
return 0; }
variables portent le même nom que dans la fonction pour éviter toute confusion . Le " malloc " fonction alloue de la mémoire pour la chaîne " newTxt " , alors la fonction est appelée. Ensuite , imprimez la nouvelle chaîne à la console, puis libérer la mémoire allouée par " malloc ".
Pour tester le programme dans Visual Studio, appuyez sur F5 .