用C++实现:各种字符之间的循环转换

输入一个字符串

要求:1.若输入A则输出Z,若输入B则输出Y,以此类推;小写字母同理

           2.若输入0则输出9,输入1则输出8,以此类推(不含负数)

           3.其他非字母数字类字符,输出其ASC||码的16进制形式

提示:0-9的ASC||值为48-57,A-Z的ASC||值为65-90,a-z的ASC||值为97-122

1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main(void) 5 { 6 char* arr = new char[10000]; //定义一个足够大的数组 7 cin >> arr; 8 int length_arr = strlen(arr); //计算输入字符串长度 9 for (int i = 0; i < length_arr; i++) 10 { 11 if (arr[i] >= '0' && arr[i] <= '9') 12 { 13 arr[i] = 105 - arr[i]; 14 cout << arr[i]; 15 } 16 else if (arr[i] >= 'A' && arr[i] <= 'Z') 17 { 18 arr[i] = 155 - arr[i]; 19 cout << arr[i]; 20 } 21 else if (arr[i] >= 'a' && arr[i] <= 'z') 22 { 23 arr[i] = 219 - arr[i]; 24 cout << arr[i]; 25 } 26 else 27 { 28 cout << hex << (int)arr[i]; //直接用hex16进制输出 (注意,不要用中文格式输入符号,否则有些无法识别) 29 } 30 } 31 return 0; 32 }

思路:就是将arr数组里的每一位都按要求来转换,转换一位输出一位。运用ASC||码来进行字符和整型之间的转换。最后一步直接用hex16进制进行输出,也极大的减少了代码量。

补充:oct是8进制输出,·dec是10进制输出,hex是16进制输出。使用方法类似上面代码即可。也可以分开写,即:

cout<<hex;

cout<<(int)arr[i];

 


__EOF__

本文作者神楽桜KaguraSakura
本文链接https://www.cnblogs.com/KaguraSakura/p/12465424.html
关于博主:hello~好久不见,喜欢的话点个赞吧
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神楽桜KaguraSakura  阅读(680)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示