倒置字符串的多种解法


题目分析

题目要求:
在这里插入图片描述
对字符串操作,将单词的顺序逆序打印
考察了对字符串的操作,循环分支,判断分支,递归的特性,数组


一、方法之操作数组

以单词为单位,把后面的单词往前放,本身就是倒置,首先想到了倒置处理数组的想法
但是直接倒置这个数组,不符合输出要求,怎么办?
比如 i love beijing. 倒置 .gnijieb evol i
如果再把每个单词倒置 可以得到 beijing. love i ,就得到我们想要的结果
当然,把每个单词都倒置一遍,然后再把把整个数组倒置一遍也是可以

  1. 首先,我们要读取字符串
char arr[101] = {
   0};
  gets(arr);//这里使用gets 将空格和字符串一起获取

之后,我们需要提取出字符串中的每个单词
因为逆序常见的办法是 拿到 left 指针,然后 拿到 right 指针,将其中的字符串逆序
在 每次指针向前走的时候,要把 left 拨到 空格后的位置,恰好是上一个right 结尾的位置,用cut 储存起来分别赋值

int cur = 0;//
  while (arr[cur]) // 遍历字符串
  {
   
    //right 和 left 指针
    int right = cur;
    int left = cur ;
    while ((arr[right] != ' ')&&
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值