初始化一个字符数组The best or nothing并将其中每个单词的字母序翻转后打印

用c语言 初始化一个字符数组为"The best or nothing",并将其中每个单词的字母 顺序翻转后打印输出到屏幕。要求: 1、 字符数组的初始化在程序运行时由用户输入; 2、字符数组的翻转和结果输出功能通过函数实现; 3、字符数组不能定义成全局变量。

输入:The best or nothing

输出:ehT tseb ro gnihton

这样的吗?如果是这样的,代码如下:

#include <stdio.h>
#include <string>
void trans(char* p,int len)
{
	char* s = new char[len];
	memcpy(s,p,len);
	for (int i = 0; i < len; i++)
	{
		p[i] = s[len-1-i];
	}
	delete[] s;
	s = 0;
}
void transfun(char* p,int len)
{
	int start = 0;
	int i = 0;
	int shift = 0;
	while(i < len)
	{
		for (i = start; i < len;i++)
		{
			if(p[i] == ' ')
				break;
		}
		
		trans(p+shift,i-start);
		shift += i-start+1;
		start = i+1;
		i +=1;
	}
		
}
void output(char* p)
{
	printf("%s\n",p);
}
int main()
{
	char buf[1000] = {0};
	printf("请输入字符串:");
	gets(buf);
	transfun(buf,strlen(buf));
	output(buf);
	//getchar();
	//getchar();
	return 0;
}