3 Erklær den omvendte funktion som følger : Hej
void reverse ( char * txt, char * newTxt ) {
Denne funktion læser tegnstreng starter ved lageradressen gemt i " txt " og derefter kopierer den i omvendt rækkefølge i hukommelsen peget på af " newTxt . " Funktionen forudsætter, at tilstrækkelig hukommelse er blevet afsat til den nye streng
4
Opret et tegn pointer " c" som følger: .
Char * c = txt + strlen ( txt) ;
tegnet pointer " * c" er intet mere end et sted at gemme en hukommelse adresse. Initialisere den ved at hente adressen i " txt " og derefter tilføje længden af tekststrengen
5
Kopier teksten ved hjælp af følgende ", mens " loop : .
While ( c > txt ) {
c - ,
* newTxt = * c.
newTxt + +;
}
Flyt "c" pointer ét bogstav tilbage (det blev formateret en karakter forbi slutningen af tekststrengen ) . Når du har det sidste tegn , kopiere den til det første tegn i den nye streng som peget på af " newTxt ". Advance " newTxt " pointer frem ét tegn. Anden gang igennem, kopiere den næste -til- the- sidste tegn af " txt " streng til den anden karakter af " newTxt " streng . Dette fortsætter, indtil du kommer tilbage til begyndelsen
6
Tilføj en efterfølgende nul til " newTxt " streng og afslutte funktionen
* newTxt = 0; . .
< p> }
C + +, al tekst strenge ende med en binær nul
7
Føj koden for at teste funktionen som følger: .
int _tmain ( int argc , _TCHAR * argv []) {
char * txt = " Fire snese og syv år siden ... "
char * newTxt ,
newTxt = ( char * ) malloc ( strlen ( txt) +1) ,
omvendt ( txt, newTxt )
printf ( "% s \\ n" , newTxt )
< p > gratis ( newTxt )
tilbagevenden 0;
}
Variable er navngivet på samme måde som i funktionen for at undgå forvirring . Den " malloc "-funktionen allokerer hukommelse til " newTxt " streng , så funktionen bliver kaldt . Bagefter udskrive nye streng til konsollen , derefter frit hukommelsen tildelt af " malloc . "
For at teste programmet i Visual Studio , skal du klikke på F5.
< br >