C语言-按照单词反转字符串(完整代码)

2023-11-11

编程实现以单词 为单位的字符串逆序  例如 HELLO WORLD ---- WORLD HELLO

目录

实现逻辑

实现代码如下:(完整备注)

执行结果如下:


实现逻辑

当前的实现逻辑,是通过两个指针变量,一个指针<temp>指向原来的字符串的最后一位,然后依次向前偏移,当偏移到' '空格位置时,使用第二个指针<t>,指向当前空格位置,然后 第二个指针,向后依次偏移读取,把读取到的内容,放到新的字符串里,

读取完一个单词后,temp指针继续向前偏移

到字符串的开始位置的时候,由于没有空格,所以需要手动给定,赋值一下

 

实现代码如下:(完整备注)

#include <stdio.h>
#include <string.h>
	
int main()
{
	char buf[128] = "HELLO WORLD I LOVE SLEEP";//这是原来的字符串
	char b[128] = {0};//这是转换后的字符串
	int len = strlen(buf);//这个算一个字符串的长度
	//printf("buf len == %d\n",len);//打印一下玩玩
	int i = 0;//这个是给外层循环用的,也可以直接用 while(长度--)
	int j = 0;//这个是给内层循环用的
	int num = 0;//这个是计数的
    int b_n = 0;//这个是 新的字符串数组的下标
	char *temp = &buf[len-1];//先让temp指针指向字符串的最后
	char *t;//然后定义了一个临时指针,用来复制字符串
	//这个外层循环主要是看需要走多少次
	for(i=0;i<len;i++)
	{
		num++;//每进入一次循环,个数加1---记录单词的长度
		if(*temp == ' ')
		{
			t = temp+1;//让新的指针,指向temp现在的位置,然后偏移t,给新的赋值
			//因为当前的位置是 空格,需要往后偏移一个
			//t++;//
			for(j=0;j<num-1;j++)//根据上面的计数,查看执行的次数
			{
				//printf("---%c---\n",*t);//打印测试一下
				b[b_n] = *t;//赋值
				t++;//偏移
				b_n++;
			}
			b[b_n] = ' ';//加空格
			b_n++;
			num = 0;//置0,
			//printf("===========\n");
		}
		temp--;//指向原来的指针往回走
		
		if(i==(len-1))//如果,偏移到最后一位,也就是刚开始的位置,这块没有空格,所以需要主动判断一下
		{
			t = buf;//指向开头

			while(*t != ' ')	
			{
				b[b_n] = *t;//赋值
				t++;//偏移
				b_n++;
			}
		}	
	}
	printf("buf -->%s\n",buf);
	printf("b   -->%s\n",b);
	return 0;	
}

执行结果如下:

 

附加:

        也可以直接使用 strtok 来裁剪一下 字符串,然后使用 strcat 拼接一下---并未测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言-按照单词反转字符串(完整代码) 的相关文章

随机推荐

  • 监督学习,无监督学习,半监督学习,主动学习的概念

    1 监督学习 supervised learning 训练数据既有特征 feature 又有标签 label 通过训练 让机器可以自己找到特征和标签之间的联系 在面对只有特征没有标签的数据时 可以判断出标签 即生成合适的函数将输入映射到输出
  • 高斯噪声与高斯滤波

    噪声 噪声表现形式 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块 一般 噪声信号与要研究的对象不相关 它以无用的信息形式出现 扰乱图像的可观测信息 通俗的说就是噪声让图像不清楚 噪声对数字图像的影响 对于数字图像信号 噪声表为
  • 深度优先查找和广度优先查找

    深度优先查找和广度优先查找 在人工智能和运筹学的领域中求解与图有关的许多应用中 这两个算法被 证明是非常有用的 并且 如需高效地研究图的基本性质 例如图的连通性以及图是否存 在环 这些算法也是必不可少的 深度优先查找 深度优先查找可以从任意
  • python之cv2与图像的载入、显示和保存

    本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇 在笔记中将以Python语言改写每章的代码 PythonOpenCV的配置这里就不介绍了 注意 现在O
  • shell-if语句详解

    if 条件 then Command else Command fi 别忘了这个结尾 If语句忘了结尾fi test sh line 14 syntax error unexpected end of fi if 的三种条件表达式 if c
  • navigator.geolocation.getCurrentPosition在谷歌浏览器不执行的问题

    在React 中使用navigator geolocation getCurrentPosition去获取定位信息时 获取地理位置信息 navigator geolocation getCurrentPosition position gt
  • 初识SQL workbench

    一 workbench 下载地址 https dev mysql com downloads workbench 二 环境变量配置 双击安装包 点击 Next 进行安装 重要提醒 请截图保留安装界面中 见下图 红色框起来的地址 图1 记住安
  • 3打包生成dist文件夹并发布到服务器

    打包生成dist文件夹并发布到服务器 打包生成dist文件夹 npm run build 发布1 使用静态服务器工具包 安装serve npm install g serve serve dist 访问 http localhost 500
  • mac下搭建编译chromium的开发环境

    本篇为 mac 下搭建编译chromium的方法 windows篇 windows下搭建编译chromium的开发环境 二七 CSDN博客 linux篇 linux 搭建和编译 chromium 环境 二七 CSDN博客 系统环境 mac
  • 如何实现自定义MVC框架(最终版本)

    目录 一 将MVC框架源码导成jar包 1 1优化的思路 1 2具体步骤 二 创建需要的工具包 分析思路 具体的代码 三 总结 前言 我们通过框架的形式实现一个具有增删改查的网页 一 将MVC框架源码导成jar包 1 1优化的思路 相比我们
  • Selenium自动化测试简介

    IT赶路人专注分享跟IT相关的各种知识 希望我们一起学习 共同成长 Selenium自动化测试 很早就想跟大家分享 在15年开始 我们的团队就在使用这个工具 最初 我们使用的语言是Java和SQL的结合 随后 随着最近几年Python语言的
  • Leetcode 219. Contains Duplicate II (hashmap 和 sliding window)

    Contains Duplicate II Easy Given an integer array nums and an integer k return true if there are two distinct indices i
  • ElasticSearch 绑定IP地址

    https blog csdn net yelllowcong article details 78740237
  • Dx11--用dx11绘制棱台,并用键盘和鼠标进行旋转缩放操作

    目录 一 索引缓冲区 前言 创建缓冲区 缓冲区的描述 二 常量缓冲区 前言 准备工作 正式初始化 画面更新及其效果 画面更新 效果 三 键盘和鼠标的创建 1 鼠标的创建 2 键盘的创建 3 更新画面 4 消息回调函数 处理键盘鼠标信息 效果
  • Python协程介绍【赠书活动|第五期《Python编程入门与实战》】

    文章目录 一 相关概念 1 协程 2 子程序 3 区别 4 协程的优势 二 示例 赠书活动 一 相关概念 1 协程 协程 又称微线程 纤程 英文名Coroutine 协程的概念很早就提出来了 但直到最近几年才在某些语言 如Lua 中得到广泛
  • LeetCode : Search for a Range

    Given a sorted array of integers find the starting and ending position of a given target value Your algorithm s runtime
  • Centos7安装jdk1.8

    Centos7安装jdk1 8 两种安装方式 1 检查本机是否安装了jdk 安装了就不用安装了 命令如下 root localhost java version bash java 未找到命令 root localhost 注意 说明未安装
  • 视频解码学习备忘

    媒体文件知识 日常都是播放器直接播 其实这里面还有不少内容的 首先是视频容器 就是所谓的 mp4 mkv 这类文件 其目的主要就是用来存放音频视频字幕等内容 所以叫做容器 这些都有一定规范 比如mp4 叫ISO 14496 12 也即是mp
  • 7-1 图的先深搜索+7-2 图的先广搜索

    由于本人用指针 链表实现数据结构算法时经常有使用堆叠字节的警告以及栈溢出报错 于是就都用数组或者C stl模拟了 输出无向图的给定起点的先广序列 输入格式 输入第一行给出三个正整数 分别表示无向图的节点数N 1
  • C语言-按照单词反转字符串(完整代码)

    编程实现以单词 为单位的字符串逆序 例如 HELLO WORLD WORLD HELLO 目录 实现逻辑 实现代码如下 完整备注 执行结果如下 实现逻辑 当前的实现逻辑 是通过两个指针变量 一个指针