对字符串进行解析并转为16进制

一个简单的字符串解析练习 效果如下图:

思路如下:

1. C++在存储字符时实质上是存储字符的ASC码,既字符的int型即为ASC码。
2. 通过进制转换,得到字符的ASC值(10进制)再转为16进制即可。

步骤:

1. 交互界面,录入字符串
int Ui();//交互界面
int main()
{int i=1;while (true){i=Ui();if (i == 0) return 0;}
}
int Ui()
{std::cout << "\n请输入对应的选项进行操作!\n"<< "\"1\"输入要转换的字符串 \"2\"清空屏幕 \"-1\"退出程序\n";int select = 0;std::cin >> select;//std::cin.clear();更改缓存区状态 (还没搞懂用法)std::cin.ignore();//清空输入缓存区switch (select){case 1:{std::cout << "请输入要转换的字符串:";std::string mstring;std::getline(std::cin,mstring);DataTransform worker;worker.insertString(mstring);worker.show();mstring.clear();}return 1;case 2:system("cls");return 1;case -1:return 0;default:std::cout << "选择有误请重新输入!" << std::endl;return 1;break;}
}
  • 考虑到字符串中可能有空格,故使用getline()函数输入数据
std::getline(std::cin,mstring);

使用getline函数时应确保输入缓存区为空,否则getline将直接从缓存区中读取数据,从而跳过用户输入。

  • 缓存区清空
std::cin.ignore();
2. 数据处理
  • 字符串长度不固定故采用链表的方式存储结果
void DataTransform::insertString(std::string string)
{Data *p = resultTable;for (size_t i = 0; i < string.size(); i++){if (i==0){resultTable->_16= hexadecimal(string[i]);resultTable->Chars =string[i];resultTable->next = NULL;}else {Data *Table = new Data;p->next=Table;p = Table;p->_16 = hexadecimal(string[i]);p->Chars = string[i];p->next = NULL;}}
}
//转为16进制
std::string DataTransform::hexadecimal(char chars)
{int ASC = chars;int i = ASC, j;std::string result;std::string str;while (i){if (i / 16 == 0){if (i < 10)str += i + '0';else str += m_16[i - 10];i = 0;}else{j = i % 16;if (j < 10)str += j + '0';else str += m_16[j - 10];i = i / 16;}}//调整顺序for (size_t m = str.size() - 1; m + 1 > 0; m--){result += str[m];}return result;
}

以上就是本项目的主要功能代码,有问题或建议请留言,如需源码请转至:资源中心 关注后即可免费下载。

C++ 字符串字符转为16进制相关推荐

  1. 将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 很多事根本就没有那么多的前提可言,想做事,就不要把先决条件看得过重. 文 章 导 读 今天给小伙伴们介绍下了下进制转换和字符串与数值互转的方法 ...

  2. MFC中将用户输入的表示16进制数的字符串转换成16进制数输出显示(包含1.wstring转成string的方法函数2.用boost库拆分字符串的函数3.字符转16进制数值的函数)

    前期准备: 1.电脑中安装好boost库,我的电脑中安装在C盘根目录下,如下图所示: 2.配置好boost环境变量,如下图所示: 3.开发环境VS2015,工程为MFC应用程序 需要的头文件如下: # ...

  3. python- ASCII字符串转为16进制格式

    代码 #!/usr/bin/python3 hexForamt="\\x" # 更改这里的ASCII字符串 asciiStr="AAABBBccc" def a ...

  4. QT 字符转16进制字符串

    串口工具有一个功能是把字符转换成16进制字符 例如字符'6'的ASCII 码是54换成16进制是36 字符转16进制字符串 QString AngelaTest::charToHexStr(char ...

  5. java-16进制字符串转16进制int、将10进制的数字转为16进制

    String h="76F41000"; int re= new BigInteger(h, 16).intValue() 将10进制的数字转为16进制字符串 System.out ...

  6. php 字符串转化为16进制,php将字符串转换成16进制的方法

    php将字符串转换成16进制的方法 本文实例讲述了php将字符串转换成16进制的方法.分享给大家供大家参考.具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2 ...

  7. 将字符串转换成16进制

    将字符串转换成16进制 原文:将字符串转换成16进制 1.将普通字符串转换成16进制的字符串. 点击进入推荐链接 class Program {static void Main(string[] ar ...

  8. ASCII字符和16进制字节数据互转

    接着上次写的一个字符转换.这次是互转,更便于理解. 1.CharToHex() //功能描述:把ASCII字符转换为16进制 将两个ASCII字符转化为单个字节进行显示,即两个字节转化为一个字节.如' ...

  9. 串口编程 - ascii字符与16进制的相互转换

    串口编程 - ascii字符与16进制的相互转换 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 串口编程 - ascii字 ...

最新文章

  1. jmeter压测_jmeter压测学习2linux运行jmeter环境
  2. 新站优化远比老站难的多!
  3. itextsharp php,C#_C#使用iTextSharp设置PDF所有页面背景图功能实例,本文实例讲述了C#使用iTextSharp - phpStudy...
  4. java cursor 删除_使用CursorRecyclerAdatper在RecyclerView中删除和撤消
  5. DCMTK:测试dcmiod的颜色转换功能
  6. 使用PHREAK算法实现Drools 6性能
  7. [AngularJS] 理解AngularJS Directive中的Scope
  8. java Excel导入、自适应版本、将Excel转成Listmap对象
  9. tplink 2.4g弱信号剔除_解疑答惑 | 使用无线路由器上网,应使用2.4G频段还是5G频段?...
  10. james邮件服务器的用户信息添加
  11. 联想MIIX520安装黑苹果参考教程
  12. python安装pandas pytz_python安装pandas+pytz
  13. 计算机学报范文,计算机学报论文
  14. 远程时间管理软件 - 工时通
  15. 矩阵的矩阵指数函数_精通R编程:使用包,创建对象和基本矩阵函数
  16. java群面自我介绍,群面的一分钟自我介绍
  17. ASP.Net三层架构
  18. vbox虚拟机添加硬盘
  19. 免费帝国CMS发布插件
  20. 2022新版域名防红系统源码+功能强大

热门文章

  1. 接入丰桥,下单到打印面单到配送开发流程
  2. 男子陷连环计借万元送人
  3. 【美化到底】Windows下的Powershell美化
  4. Python列表或元组的数字元素求和
  5. Java实现键盘输入
  6. 原生RedHat OpenStack搭建
  7. 磁共振成像(MRI)连接组学的应用
  8. # Monaco Editor 使用
  9. HTML5期末大作业:鲜花超市网站设计——鲜花超市(4页) HTML+CSS+JavaScript HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作
  10. Android 数据库插入数据总是失败的原因