- 实现字符串的翻转,如:student a am i ----->i am a student.
首先,实现字符串整体的逆转----->void Reverse() 和 int strlen()
然后,实现每个子字符串的逆转----->开始为空格的空格的后一位,结束为 '\0'.
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int strlen (const char *str)
{
int count =0;
assert (*str!=NULL);
while (*str)
{
count++;
str++;
}
return count ;
}
void Reverse_r (char *start,char *end)
{
while (start < end)
{
char tmp=*start;
*start=*end;
*end=tmp;
start++;
end--;
}
}
void Reverse (char *str)
{
char *left=str;
char *right =str+strlen (str)-1;
char *cur=str;
Reverse_r (left,right);
while (*cur)
{
while ((*cur!=' ') && (*cur!='/0'))
{
cur++;
}
Reverse (start,cur-1);
if (*cur==' ')
{
cur++;
}
}
}
int main ( )
{
char arr[]={0};
gets ( );
Reverse (arr);
printf ("%s",arr);
printf ("\n");
system ("pause);
return 0;
}