单词的倒叙打印(i love china)

该代码示例展示了如何使用C语言编程实现字符串中单词的逆序,而不改变单词内部字符顺序。程序通过指针操作,先完成整个字符串的字符逆序,然后找到单词边界进行单词级别的逆序,以达到‘IloveChina’变成‘chinaloveI’的效果。
摘要由CSDN通过智能技术生成

字符"I love china",实现以单词为单位的逆序,如:“china love i”
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char a[32] = “I love China”;
char *p = a;//指向开头
char *q = p + strlen(a) - 1;//指向结尾
char *k = NULL;//交换时使用
char t;
while (p < q)
{
t = *p;
*p = *q;
*q = t;
p++;
q–;
}
printf(“%s\n”, a); //全部倒置 anihc evol I
p = q = a; //定位在开头
while (*p != ‘\0’)
{
while (*p == ’ ') //防止字符前面有空格
p++;
q = p; //q从p开始找单词结尾
while (*q != ’ ’ && *q != ‘\0’) //q自增遍历到单个单词的末尾
q++;
k = q; //暂存空格的位置
q–; //指向单词结尾
while (p < q)//三杯水交换
{
t = *p;
*p = *q;
*q = t;
p++;
q–;
}
p = k;//在找开头位置
}
printf(“%s\n”,a);
return 0;
}
love 为例指针的运动
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值