逆序一个字符串的每一组单词(不是倒叙)

简介: 整体思路:1.先将整个字符串倒叙:i like china.->.anihc ekil i2.将倒叙后的每一块单词再倒叙:.anihc->china.想必大家都发现了,倒叙整个字符串和倒叙每一块是一样的,那么我们不妨写一个倒叙的函数在这里用reserve表示!

eg:输入:i like china.


    输出:china. like i


关于这个题呢?想必大家有很多写法,在这里小编为大家提供一种方法.


整体思路:


1.先将整个字符串倒叙:i like china.->.anihc ekil i


2.将倒叙后的每一块单词再倒叙:.anihc->china.


想必大家都发现了,倒叙整个字符串和倒叙每一块是一样的,那么我们不妨写一个倒叙的函数在这里用reserve表示!


整体代码如下:具体细节代码中标识

void reserve(char* left, char* right)
{
    //left:最左边元素
    //right:最右边元素
  while (left < right)
  {
  char tmp = *left;
  *left = *right;
  *right = tmp;
  left++;
  right--;
  }
}
int main()
{
  char arr[100] = { 0 };
  //输入
  gets(arr);
  //倒叙字符串
  int len = strlen(arr);
  reserve(arr, arr + len - 1);
  //倒叙每一组单词
  char* cur = arr;
  while (*cur)
  {
        //*strat开始头一个元素
  char* strat = cur;
  while (*cur != ' ' && *cur != '\0')
  {
    cur++;
  }
  reserve(strat, cur - 1);
  while (*cur == ' ')
  {
    cur++;
  }
  }
  //输出
  printf("%s", arr);
  return 0;
}


这道题就这样完成啦!有哪点看不懂的欢迎私信或者在评论区提问!!!


目录
相关文章
|
6月前
|
测试技术
leetcode-1592:重新排列单词间的空格
leetcode-1592:重新排列单词间的空格
44 0
|
6月前
|
机器学习/深度学习 算法 测试技术
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
|
3月前
|
算法
如何反转给定的字符串?
【8月更文挑战第23天】
45 0
|
6月前
leetcode-2000:反转单词前缀
leetcode-2000:反转单词前缀
45 0
leetcode-2000:反转单词前缀
|
6月前
|
存储 编译器 C语言
Day2 排序子序列、倒置字符串
Day2 排序子序列、倒置字符串
46 0
从排列字符串到排列序列:解析增减字符串匹配问题
题目要求根据给定的字符串 s,构造一个排列序列 perm,其中排列序列中的数字满足以下规则: 如果 perm[i] < perm[i + 1],则对应的字符为 'I'; 如果 perm[i] > perm[i + 1],则对应的字符为 'D'。 我们需要根据字符串 s 中的字符,构造满足上述规则的排列序列 perm。
55 0
1185:单词排序
1185:单词排序
126 0
逆序字符串 和 字符串的逆序输出 的区别~
逆序字符串 和 字符串的逆序输出 的区别~
112 0
LeetCode 5867. 反转单词前缀
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。
82 0
|
算法 Java 索引
【算法】给定一个字符串 s 和一些长度相同的单词 words,串联所有单词的子串。要不要来试一试?
给定一个字符串 s 和一些长度相同的单词 words串联所有单词的子串
144 0
【算法】给定一个字符串 s 和一些长度相同的单词 words,串联所有单词的子串。要不要来试一试?