将i am a student 逆置为 student a am i

int Mystrlen(const char* str)//字符串长度函数
{
	int count = 0;
	assert(*str != '\0');
	while (*str!= '\0')
	{
		count++;
		str++;
	}
	return count;
}
void resverse(char* left,char* right)//置换函数
{
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
void world(char *str)//分单词函数
{
	char *left = str;
	char *right = str + Mystrlen(str) - 1;
	resverse(left, right);//整体逆置
	char *cur = str;

	while (*cur != '\0')
	{
		char *start = cur;
		while (*cur != ' '&& *cur != '\0')
		{
			cur++;
		}
		resverse(start, cur - 1);//单词逆置
		if (*cur == ' ')
		{
			cur++;
		}
	}
}
int main()
{
	char str[20] = "i am a student";
	world(str);
	printf("%s\n",str);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/belongHWL/article/details/91410916