3 Erklærer omvendt funksjon som følger : en < p > void revers ( char * txt , røye * newTxt ) {
Denne funksjonen leser tegnet streng som starter ved minnet adressen som er lagret i " txt " og deretter kopierer den i motsatt rekkefølge av minnet peker til " newTxt . " Funksjonen forutsetter at tilstrekkelig minne har fått tildelt for den nye strengen
4
Lag et tegn peker "c" som følger: .
Røye * c = txt + strlen ( txt ) ;
tegnet pekeren "* c" er noe mer enn et sted å lagre et minne adresse . Klargjøre det ved å hente inn adressen i " txt ", deretter legge lengden på tekststrengen
5
Kopier teksten ved hjelp av følgende "mens " loop : .
While ( c > txt ) {
c - ;
* newTxt = * c ;
newTxt + +;
}
Flytt "c "-pekeren tilbake ett tegn (det ble initialisert ett tegn forbi enden av tekststrengen ) . Når du har det siste tegnet , kopiere den til det første tegnet i den nye strengen som peker til " newTxt . " Fremme " newTxt " peker fremover ett tegn . Den andre gangen gjennom, kopiere den neste - to-the - siste tegn i " txt " strengen til det andre tegnet av " newTxt " streng . Dette fortsetter til du kommer tilbake til begynnelsen
6
Legg en etterfølgende null til " newTxt " streng og avslutte funksjonen
* newTxt = 0 ; . .
< p> }
i C + + , all tekst strenger ende med en binær null
7
Legg inn koden for å teste funksjonen som følger: .
int _tmain ( int argc , _TCHAR * argv [ ] ) {
røye * txt = " Fire poeng og sju år siden ...";
røye * newTxt ;
newTxt = ( char * ) malloc ( strlen ( txt ) 1 ) ;
omvendt ( txt, newTxt ) ;
printf ( "% s \\ n" , newTxt ) ;
< p > gratis ( newTxt ) ;
return 0 ;
}
Variabler heter det samme som i funksjonen for å unngå forvirring . Den " malloc "-funksjonen tildeler minne for den " newTxt " streng , slik at funksjonen blir kalt. Etterpå skriver ut den nye strengen til konsollen , deretter fritt minnet er tildelt av " malloc . "
For å teste programmet i Visual Studio , klikk F5 .