例如:
原顺序:
Mike Shinoda, Rob Bourdon, and Brad Delson.
单词交换:
Delson. Brad and Bourdon, Rob Shinoda, Mike
#include <stdio.h>
#include <string.h>
int main()
{
char p[] = "Mike Shinoda, Rob Bourdon, and Brad Delson.";
char temp;
int i = 0,j = 0;
int begin = 0,end = 0;
printf("原顺序:\n");
printf("%s\n",p);
//第一步:全盘反转
puts("全盘反转:");
j = strlen(p) - 1;
while(j > i)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
j--;
i++;
}
printf("%s\n",p);
//第二步:将每个空格隔开的单词反转;
i = 0;//i = 0;重置,因为经过上面的过程,i的值发生变化
while(p[i])
{
if(p[i] != ' ')
{
begin = i;
while(p[i] && p[i] != ' ')
{
i++;
}
i = i - 1;
end = i;
}
while(end > begin)
{
temp = p[begin];
p[begin] = p[end];
p[end] = temp;
end--;
begin++;
}
i++;
}
puts("单词交换:");
printf("%s\n",p);
return 0;
}