#include <stdio.h> #include <assert.h> int length(const char *str) { int len=0; assert(str); while(*str) { len++; str++; } return len; } void reverse_str(char *start,char *end) { while(start<end) { char tmp=*start; *start=*end; *end=tmp; start++; end--; } } char *reverse(char *str) { int n=length(str); char *ret=str; //先将起始位置保存在ret中 char *start=str; char *end=str+n-1; reverse_str(start,end); while(*str) { start=str; while((*str!=‘ ‘ )&&(*str!=‘\0‘)) { str++; } end=str-1; reverse_str(start,end); if(*str==‘ ‘ ) { str++; } } return ret; } int main() { char str[]="student a am i" ; printf( "%s\n",reverse(str)); system( "pause"); return 0; }
时间: 2024-11-08 03:03:57