当前位置: 首页 > news >正文

【c语言】倒置字符串

将一句话的单词进行倒置,符号不变,用例长度不超过100

思路:

  1. 逆序整个字符串
  2. 逆序每个单词

#include <stdio.h>
#include <string.h>
void reverse(char* left, char* right) {
	while (left < right) {
		//char *tmp = left;//error:中间变量应该存储*left;而不是left,如果tmp作为指针变量与left同指一片内存区域,那么*left改变,*tmp也改变
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
int main() {
	//输入一个字符串
	char arr[101] = { 0 };//用例长度不超过100,字符串以'\0'结尾
	gets(arr);//不支持但可以使用
	// 法二:
	// scanf("%[^\n]s", &arr);//表示scanf读取字符串中的内容直到'\n'时停下
	// 法三:
	// int i = 0;
	// int ch = 0;
	// while ((ch = getchar()) != '\n') {
	//   arr[i++] = ch;
	// }
	int len = strlen(arr);
	//逆序整个字符串
	reverse(arr, arr + len - 1);//注意最后一个字符的地址表示
	
	//逆序每个单词
	char* cur = arr;
	while (*cur) {
		char* start = cur;
		while ((*cur != ' ') && (*cur != '\0')) {
			cur++;
		}
		char* end = cur - 1;
		reverse(start, end);
		if (*cur != '\0')
			cur++;
	}
	printf("%s\n", arr);
	return 0;
}

http://www.dtcms.com/a/121905.html

相关文章:

  • map/multimap
  • vue3项目中实现国际化语言切换【直接粘贴即可】
  • Windows找不到compiler.automake.allow.when.app.running怎么设置?
  • ArcGIS Engine开发教程--从零搭建GIS桌面应用
  • Redis学习总结(持续更新)
  • mysql之等值连接8个实例
  • 不同服务器架构(x86、ARM、Power、SPARC)对数据库使用的影响
  • 软件工程基础之设计模式
  • FFMEPG常见命令查询
  • 计算机视觉——深度学习图像处理中目标检测平均精度均值(mAP)与其他常用评估指标
  • 机器学习之PCA主成分分析详解
  • 强化学习原理二 BasicConcepts
  • 从MySQL快速上手大数据Hive
  • go游戏后端开发31:麻将游戏的碰牌与胡牌逻辑
  • 将外网下载的 Docker 镜像拷贝到内网运行
  • 【文献阅读】Capabilities of Gemini Models in Medicine
  • Quill富文本编辑器支持自定义字体(包括新旧两个版本,支持Windings 2字体)
  • MyBatis 动态 SQL 使用详解
  • MCP 服务搭建与配置学习资源部分汇总
  • 【CSS 选择器组合规则详解】
  • 2025-04-09 吴恩达机器学习6——神经网络(1):介绍
  • Spring Boot 3.x 中 WebClient 全面详解及示例
  • 文件上传漏洞原理学习
  • Synexens上海矽印 SP10 基于 DTOF 技术的单点激光雷达
  • Cursor+Claude 项目开发(辅助编程)
  • 沟通渠道混乱,信息传递延迟怎么办?
  • Redis高可用
  • 树的直径 (dp或贪心)
  • 蓝桥杯--寻找整数
  • 【教程】xrdp修改远程桌面环境为xfce4