2011-01-16 17 views

Antwort

9

Erste Reverse die Zeichenfolge an Ort und Stelle

Dann Reverse jedes Wort an Ort und Stelle (Wörter sind durch ein Leerzeichen begrenzt)

+2

Ja, du hast gerade seine Hausaufgaben gelöst. –

+0

@ Aleš Keprt: Nein, ich habe seinen Code nicht für ihn geschrieben. Ich gab ihm einen Hinweis. –

+1

Ein weiterer Hinweis: Beachten Sie, dass die Routine, die Sie schreiben, um den ganzen Satz umzukehren, auch verwendet werden kann, um einzelne Wörter umzukehren, wenn Sie sorgfältig darüber nachdenken. –

1

Sie müssen alle Wörter finden und dann in umgekehrter Reihenfolge drucken. Denken Sie daran, dass sie durch Leerzeichen getrennt sind. ;)

1
#include<stdio.h> 
void Reverse(char *,char *); 

char str[100]; 

void main(){ 

char *start,*end,i=0; 

printf("\nEnter: "); 

scanf("%[^\n]s",str);  //similar to gets() 

start=str; 

while(*(str+i)!='\0') i++; 

end=str+i-1; 


Reverse(start,end); 

printf("\nstr:%s",str); 

end=str; 

for(i=0;*(str+i)!='\0';i++){ 


    if(*(str+i)==' '){ 
    Reverse(start,end-1); 
    start=end+1; 
    end=start; 
    continue; 
    } 
    end++; 
} 

Reverse(start,end-1); 

printf("\nstr:%s",str); 

    } 

void Reverse(char *start,char *end){ 

char temp=0,i=0; 

while(start<end) { 

    temp=*start; 

    *start=*end; 

    *end=temp; 

    start++; 

    end--; 

} 

} 
+1

Sie sollten Ihren Code wahrscheinlich erklären. – md5

Verwandte Themen