首页 > 其他分享 >逆序句子,但单词顺序不变

逆序句子,但单词顺序不变

时间:2024-01-24 16:02:46浏览次数:27  
标签:char arr right 单词 逆序 句子 left

如,

输入:I like coding!

输出:coding! like I

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <assert.h>
#include <string.h>

void Reverse_arr(char* left, char* right)
{
	assert(left);
	assert(right);

	char tem = 0;

	while (left < right)
	{
		tem = *left;
		*left = *right;
		*right = tem;

		left++;
		right--;
	}
}

int main()
{
	char arr[101] = { 0 };
	int len = 0;
	char* left = NULL;
	char* right = NULL;

	//读取
	gets(arr);

	len = strlen(arr);
	right = &arr[len - 1];
	left = &arr[0];

	//逆序整个句子
	Reverse_arr(left, right);

	//逆序每一个单词
	while (*right != '\0')
	{
		right = left;

		//right在正常情况下,遇到空格就可以判断单词结束,进行逆序单词操作了
		//但还有一种特殊情况:单词在句子的末尾。
		//此时right指向的不是空格,而是'\0'
		//所以要把这2种情况都加上
		while (*right != ' ' && *right != '\0')
		{
			right++;
		}
		//此时right指向空格,所以要自减1再传入逆序函数
		Reverse_arr(left, right-1);
		left = right + 1;
	}
  
	//输出
	printf("%s\n", arr);

	return 0;
}

标签:char,arr,right,单词,逆序,句子,left
From: https://blog.51cto.com/u_16509575/9399167

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:反转字符串中的单词 III
    题目给定一个字符串s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"代码实现classSolution{publicString......
  • 相似单词记忆表
    相似单词记忆Aalone:独自,单独,孤独地,只along:沿着,顺着,向前,与...一起appear:出现,起源,问世,似乎,好像disappear:消失,失踪attract:吸引,引起attractive:有吸引力的,漂亮的Bbelow:在...下面lower:下面的,把...放低beat:打败,难过,胜过heat:热,热度heart:心脏,内心,重点,中央,心形Cchange:改......
  • 读后续写描写句子
    表达情绪:通用beseizedwithxx(heart/eyes)befilledwithxxdosthwithxxxxfillsomeplaceafeelingofxxtakeholdof(sweptover)sb.feelawarmwaveofxxwellingupone'sheart.thetearsofxxfailsb.asurgeofxx(强烈的)aflushofxx(突然的)......
  • 2024-01-17:lc的30. 串联所有单词的子串
    2024-01-17:用go语言,给定一个字符串s和一个字符串数组words。words中所有字符串长度相同。s中的串联子串是指一个包含words中所有字符串以任意顺序排列连接起来的子串。例如,如果words=["ab","cd","ef"],那么"abcdef","abefcd","cdabef","cdefab",&quo......
  • 程序员的英语课-单词(二)
    Hello,大家好,我是李林。接着上一篇,继续来谈谈程序员学英语的技巧,今天主要聊聊如何记单词。常见学习方法推荐1.单词软件使用默默背单词、百词斩、不背单词、扇贝英语等常用软件,选择一本单词书,每天定时定量背诵单词,我在考研时就使用的这种方法,早上固定200词。这是绝大多数人使......
  • 一道逆序对题
    CF1915Fhttps://codeforces.com/contest/1915/problem/F先了解什么是逆序对https://www.luogu.com.cn/problem/P1908即i<j但a[i]>a[j]的数对。求解的方法:树状数组求解。树状数组维护的其实就是一个区间内比他大并且比他先出现的值,每次查询的范围就是在原数组的下标之前......
  • 对于 EI K 逆序对排列计数的另一种自然求和方法的理解
    有一个简单的\(O(n^3)\)DP,考虑\(f_{x+1,k}=\sum_{j=0}^{x}f_{x,k-j}\),利用前缀和优化即可。考虑这实际上是\(f_{x+1}(k)=f_x(k)*\frac{1-k^{x+1}}{1-k}\),于是答案实际上为:\[[x^k]f(x)=\prod_{i=1}^n\frac{1-x^i}{1-x}\]接下来的方法来自......
  • 反转字符串中的单词
    最开始我是用笨方法解决的,就是新建了一个字符串,不断增加限制条件来实现的。点击查看代码classSolution{public:stringreverseWords(strings){stringtemp;stringcnt;intsz=s.size();intj=0;for(inti=sz-1;i>=0;i--){if(s[i]!=''){temp.push......
  • python 串联所有单词的子串 多种解法
    解法一:使用递归deffind_substrings(s,words):ifnotsornotwords:return[]word_length=len(words[0])num_words=len(words)total_length=word_length*num_wordssubstrings=[]deffind_substrings_helper(s,......
  • 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆
    描述输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001数据范围:0\len\le2^{30}-1\0≤n≤230−1输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出点击查看代码#include<i......