中文字符串逆序输出

      今天碰到这个题,让我逆序输出中文字符串,可给我烦死了,之前没有遇到过,也是查了资料才知道,让我太汗颜了。

     英文字符串逆序输出很容易,开辟一块空间用来存放逆序后的字符串,从后往前遍历原字符串,对现在这个字符串赋值即可,代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
	char s[] = "hello";
	int len = strlen(s);
	char* str = (char*)malloc(sizeof(char) * len + 1);
	int j = 0;
	for (int i = len - 1; i >= 0; i--)
	{
		str[j++] = s[i];
	}
	str[j] = '\0';
	for (int i = 0; i < len; i++)
	{
		printf("%c", str[i]);
	}
	return 0;
}

     是不是很简单,那你可能就会说,中文字符串逆序输出有什么难的,把 hello改成你想逆序输出的不完了吗?我也是这样想的,结果大错特错!

     接下来我查了资料才发现了我之前不知道的知识点,我们知道在字符编码方面,ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为拓展ASCII码128~255,当我们采用非ASCII编码时(汉字编码),一般用拓展ASCII码来进行,约定用128~255范围的连续2个进行汉字编码,同时因为编码的问题汉字所占字节的第一位必须是1,这样转化成有符号数字之后是小于0的,转化成无符号数字就大于127,这就涉及到了编码的知识,有兴趣的自行了解,因此,在处理字符串时,如果是有符号字符串,遇到小于0的字符,会结合后面紧跟的字符来组成一个汉字,如果是无符号的,则判断是否大于127

     还有就是一个汉字占用两个字节,知道了以上的知识,才能写出正确的代码。

#include<stdio.h>
#include<string.h>
int main()
{
	char s[] = "你好张三";
	int len = strlen(s);
	char* p = s;
	for (int i = len - 1; i >= 0;)
	{
		if (p[i] < 0)//判断字符值是否小于0,这里默认char是signed char类型
		{
			for (int k = i - 1; k <= i; k++)
			{
				printf("%c", p[k]);//字符值小于0,则说明它和它前面一个表示一个汉字
			}
			i -= 2;//遍历跳过两个字节,一个汉字占两个字节
		}
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/247600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

西南交通大学【数电实验8---外星萤火虫设计】

一、实验电路图、状态图、程序代码、仿真代码、仿真波形图&#xff08;可以只写出核心功能代码&#xff0c;代码要有注释&#xff09; 代码文件 激励文件 Modelsim仿真 二、引脚分配表&#xff08;电路中的信号名称->主板器件名称->引脚号PIN&#xff09; 信号名 主板器…

【C++初阶】类与对象(上)

类与对象&#xff08;上&#xff09; 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符4.2 封装 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小7.2 结构体内存对齐规则 8.this指针8.1 this指针的引出8.2 this指针的特性…

微软microsoft推出了最新的小型但强大的开源语言AI模型Phi-2

微软推出了最新的小型开源语言模型 Phi-2。该模型只有 27 亿个参数&#xff0c;却能超过比它大 25 倍的模型的性能。Phi-2 是微软 Phi 项目的一部分&#xff0c;旨在制作小而强大的语言模型。该项目包括 13 亿参数的 Phi-1&#xff0c;据称在 Python 编码方面实现了最先进的性能…

如何使用mysql去除表中重复的字段

简介&#xff1a; 此处的建表题目来自我们的也门哥Maged&#xff0c;非常感谢他出的这些测试题目&#xff0c;让我能够独立思考&#xff0c;反复试去找到cw2的正确做法。 数据库准备&#xff1a; 害怕被好homi被刺然后被 academic warning 所以浅浅打个码。 创建好这张表后我…

ipad协议限制号版

特别声明&#xff1a;仅供学习交流 Applet显示/隐藏显示操作展开操作 POST /api/Applet/GetRandomAvatar 提取一个随机昵称和照片 POST /api/Applet/UploadAvatarImg 上传小程序身份照片 POST /api/Applet/AddAvatar 增加一个小程序身份 POST /api/Applet/OauthSdkApp 授权A…

ShellCode注入程序

程序功能是利用NtQueueApcThreadEx注入ShellCode到一个进程中&#xff0c;程序运行后会让你选择模式&#xff0c;按1为普通模式&#xff0c;所需的常规API接口都是使用Windows原本正常的API&#xff1b;在有游戏保护的进程中Windows原本正常的API无法使用&#xff0c;这时候需要…

绘图示例---QT手动调用绘图事件,按钮控制图片

效果&#xff1a; 点击 “移动” 图片向右移动20&#xff0c;点击 “西理win嘛” 图片每秒向右移动20 QQ录屏20231212164128 下面时代码详解&#xff1a; 注意使用UI和代码实现按钮的不同 UI: ui->pushButton->setGeometry(windowWidth-105, windowHeight-25, 100, 20);…

ChatGPT 也宕机了?如何预防 DDOS 攻击的发生

最近&#xff0c;开发人工智能聊天机器人的公司 OpenAI 遭受了一次规模较大的分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;导致其旗下的 ChatGPT 服务在短短 12 小时内遭遇了 4 次断网&#xff0c;众多用户遭受了连接失败的问题。 这次攻击事件引起了广泛的关…

C++ stringOJ练习题

目录 把字符串转换成整数 反转字符串 字符串中的第一个唯一字符 字符串最后一个单词的长度 找出字符串中第一个只出现一次的字符 字符串相加 字符串最后一个单词长度 字符串相乘 反转字符串3 反转字符串2 验证回文串 把字符串转换成整数 通过遍历字符串并逐位转换…

漏洞复现-浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【开发工具】最新VMWare无法识别USB设备,驱动错误,未知错误【2023.12.15】

解决方案1&#xff1a;在这里改下连接方式 多试试 解决方案2 控制面板卸载程序&#xff0c;进行VMWare的修复 解决方案3 对于Windows7系统&#xff0c;切换解决方案1的usb类型为3.1&#xff0c;并下载这个intel的驱动包到虚拟机里 https://www.intel.com/content/www/us/en/do…

毅速:金属3D打印引领制造业进入新时代

随着科技的飞速发展&#xff0c;3D打印技术逐渐渗透到各个领域&#xff0c;为制造业带来了革命性的变革。其中&#xff0c;金属3D打印技术以其独特的优势&#xff0c;正逐渐成为制造业的新宠。 金属3D打印&#xff0c;也称为金属粉末烧结&#xff0c;是一种利用高能激光束将金属…

【JUC】三十、什么是AQS

文章目录 0、背景1、AQS介绍2、AQS核心概念3、AQS是JUC的基石4、锁和同步器的关系5、AQS的作用6、state和CLH队列6、AQS的内部类Node 0、背景 一段常见的代码&#xff1a; Lock lock new ReentrantLock(); lock.lock; try{//do Something } finally{lock.unlock(); }简单的一…

10分钟利用宝塔面板在阿里云服务器部署个人网页

目录 1、申请阿里云服务器 2、更换镜像&#xff08;可选&#xff09; 3、远程链接阿里云服务器安装宝塔面板 4、开放安全组 5、宝塔面板上传项目文件 1、申请阿里云服务器 购买链接->阿里云服务器购买 个人购买的就是这款&#xff0c;比较经济合算&#xff0c;而且2核…

HTTP 404错误:页面未找到,如何解决

在互联网上浏览时&#xff0c;偶尔会遇到“HTTP 404错误&#xff1a;页面未找到”的提示。这通常意味着用户尝试访问的网页不存在或无法找到。本文将探讨HTTP 404错误的原因以及如何解决这个问题。 一、HTTP 404错误的原因 HTTP 404错误可能是由多种原因引起的。以下是一些常…

线程安全集合类

文章目录 1. ConcurrentHashMap2. LinkedBlockingQueue 阻塞队列3. ConcurrentLinkedQueue4. CopyOnWriteArrayList JDK1.7 hashmap采用数组加链表头插的方式&#xff0c;在扩容时会出现循环死链问题&#xff0c;A->B->C扩容后C->B->A AB BA出现循环死链。 1. Conc…

《opencv实用探索·十九》光流法检测运动目标

前言 光流法&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术&#xff0c;可以在视频中检测并测量物体的运动轨迹。 光流的直观理解&#xff1a; 光流是一个视频中两…

ubuntu-c++-可执行模块-动态链接库-链接库搜索-基础知识

文章目录 1.动态链接库简介2.动态库搜索路径3.运行时链接及搜索顺序4.查看可运行模块的链接库5.总结 1.动态链接库简介 动态库又叫动态链接库&#xff0c;是程序运行的时候加载的库&#xff0c;当动态链接库正确安装后&#xff0c;所有的程序都可以使用动态库来运行程序。动态…

upload-labs笔记

简介 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关&#xff0c;每一关都包含着不同上传方式。 文件上传漏洞是指&#xff1a; Web 服务器允许用户将文件上传至其…

[Unity]关于Unity接入Appsflyer并且打点支付

首先需要去官方下载Appsflyer的UnityPackage 链接在这afPackage 然后导入 导入完成 引入此段代码 using AppsFlyerSDK; using System.Collections; using System.Collections.Generic; using UnityEngine;public class AppflysManager : MonoBehaviour {public static App…
最新文章