1.编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.
#include <stdio.h>
#include <string.h>
void reserve( char * str , int len)
{
int i;
char temp;
for ( i = 0; i < len / 2 ; i++)
{
temp = str[i];
str[i] = str[len - i -1];
str[len - i - 1] = temp;
}
}
void _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 str[] = "I am from shanghai";
int len = strlen(str);
reserve (str, len);
printf ("%s\n",str);
_reserve (str);
printf ("%s\n",str);
return 0;
}