编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.
- #include <stdio.h>
- #include <string.h>
- int reserve(char a[],int n)
- {
- int i=0,j=0;
- char temp = 0;
- int m = n-1;
- for(i=0;i<m;i++)
- {
- n--;
- for(j=0;j<n;j++)
- {
- temp = a[j];
- a[j] = a[j+1];
- a[j+1] = temp;
- }
- }
- }
- int re_reserve(char *a)
- {
- int n = 0;
- while(1)
- {
- n++;
- if((*a)==' '||(*a)=='\0')
- {
- reserve(a-n+1,n-1);
- n = 0;
- }
- if(*a=='\0')
- {
- break;
- }
- a++;
- }
- }
- int main()
- {
- char a[]="I am from shanghai";
- int n = strlen(a);
- reserve(a,n);
- re_reserve(a);
- printf("output:%s\n",a);
- return 0;
- }