字符串的逆序和单词反序

 这个题可谓是让我吃尽苦头。今天呢就讲讲如何写这个题

第一种:将字符串从后往前遍历寻找空格然后再从空格位置往后数至字符串结尾,逐个字符打印。

第二种:先倒序整个字符串再将单词逐个倒序(这是待会儿讲的)

第三种:利用二维数组存储数据的方法。

大家可以自己尝试。

第二种方法:思路:优先将整个字符串倒序。

声明一个数组利用gets(),或者fgets()两个函数去进行输入,其中gets由于不安全(容易发生数组越界访问导致数组被“撑爆”),fgets当你敲完一串字符回车的时候,这个回车也会被计入到数组中这个是非常需要注意,如果要利用fgets则需要特殊处理一下(因为我刚栽了跟头)

 

左图为fgets(),右图为gets() 可以看出fgets多计入了一个'\n'。可谓真是“贴心”。

将字符串全部倒序我们声明一个自定义函数reverse()并且将字符串的开头和结尾作为参数

实参全部都是地址,然后进行交换。

整体倒序完成之后我们就要进行对每个单词的倒序。

利用单词与单词之间都是以空格分开和最后字符串结尾是以'\0'结尾的两个特点作为判断依据

声明两个指针

利用move变量的不断移动来寻找每一个单词,再将start = move + 1 来重新指定单词的开头(当move指向了‘\0’时,则转变判断方法,不再让move往后移动跳过'\0')

每次都利用reverse就可以啦

代码:test_5_25/test_5_25/test.c · 李行者/study C - 码云 - 开源中国 (gitee.com)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老幺*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值