输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,例如输入“I am a student”,输出“student a am I”

解题思路:定义一个字符型数组str[],内为原英文句子,定义一个字符型数组str1[],为重组后的英文句子。先求出英文句子的长度,利用for循环从元英文句子末尾向句首寻找空格符,当寻找到空格符时就将此个空格符前面一个英文单词复制到str1[]中,直到for循环结束。需要注意的是,当for循环结束时,原英文句子的第一个单词因为前面并没有空格符,所以无法复制到str1中,所以可以在for循环下寻找空格符的判断语句中加上for循环结束的情况。

#include 

int main()
{
	char str[] = "I am a student";
	char *po;
	int sum=0,i,j=0,x=0,k;
	po = str;
	while('\0'!=*po)//求出数组长度
	{
		sum ++;
		po ++;
	}
	char str1[sum];
	po= str;
	for(i=sum-1;i>=0;i--)
	{
		if((' '== str[i])||(0==i))
		{
			if(0==i)--i;
			for(k=i+1;k
本文仅为一种思路,换一种思路,可以先将所有的英文字母全部颠换,然后从颠倒后的数组中将每个单词在颠倒一遍。


你可能感兴趣的:(输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变)