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

本文介绍了一种通过编程实现翻转英文句子中单词顺序的方法。具体步骤包括:首先计算句子长度,接着从句子末尾开始寻找空格并复制单词至新数组,最后输出翻转后的句子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

#include <stdio.h>

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<sum-x;k++)
			{
				str1[j]=str[k];
				printf("%c",str1[j]);
				j++;
			}
			x=j;
			printf(" ");
		}
	}
	printf("\n");
    return 0;
}
本文仅为一种思路,换一种思路,可以先将所有的英文字母全部颠换,然后从颠倒后的数组中将每个单词在颠倒一遍。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值