3 Deklarera den omvända funktionen enligt följande :
void reverse ( char * txt , char * newTxt ) {
Denna funktion läser teckensträngen börjar vid minnet adressen lagrad i " txt " och sedan kopierar den i omvänd ordning till minnet utpekas av " newTxt . " Funktionen förutsätter att tillräckligt med minne har tilldelats för den nya strängen
4
Skapa en karaktär pekare " c " enligt följande : .
Char * c = txt + strlen ( txt ) ;
tecknet pekaren " * c " är inget annat än en plats att lagra en minnesadress . Initiera det genom att hämta adressen i " txt ", lägg sedan till längden på textsträngen
5
Kopiera texten med följande " medan " loop : .
Medan ( c > txt ) {
c - ,
* newTxt = * c ;
newTxt + + ;
}
Flytta " c " pekaren bakåt ett tecken ( den initierades ett tecken förbi slutet av textsträngen ) . När du har det sista tecknet , kopiera den till det första tecknet i den nya strängen som utpekas av " newTxt . " Advance " newTxt " pekaren framåt ett tecken . Den andra gången , kopiera nästa - till - den - sista tecknet i " txt " sträng till den andra karaktären av " newTxt " sträng . Detta fortsätter tills du kommer tillbaka till början
6
Lägg ett avslutande noll till " newTxt " sträng och avsluta funktionen
* newTxt = 0; . .
}
C + + , all text strängar avslutas med en binär nolla
7
Lägg koden för att testa funktionen på följande sätt : .
int _tmain ( int argc , _TCHAR * argv [ ] ) {
char * txt = " Fyra poäng och sju år sedan ... " ,
char * newTxt ,
newTxt = ( char * ) malloc ( strlen ( txt ) +1 ) ;
reverse ( txt , newTxt ) ;
printf ( " % s \\ n " , newTxt ) ;
free ( newTxt );
avkastning 0;
}
Variabler
har samma namn som i funktionen för att undvika förvirring . Den " malloc " funktionen allokerar minne för " newTxt " sträng , då funktionen anropas . Efteråt , skriv ut den nya strängen till konsolen , därefter fri minnet tilldelats av " malloc . "
Att testa programmet i Visual Studio , klicka på F5 .