IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言-按照单词反转字符串(完整代码) -> 正文阅读

[C++知识库]C语言-按照单词反转字符串(完整代码)

编程实现以单词 为单位的字符串逆序? 例如 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 拼接一下---并未测试

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:13:13  更:2021-10-28 12:13:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:28:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码