news 2026/4/18 7:34:28

2*8的lcd显示屏自动居中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2*8的lcd显示屏自动居中

一、核心代码(直接可用)

1️⃣ 计算 GBK 显示宽度

int gbkWidth(const std::string &s) { int w = 0; for (size_t i = 0; i < s.size(); ) { unsigned char c = s[i]; if (c & 0x80) { // GBK 中文 w += 2; i += 2; } else { w += 1; i += 1; } } return w; }

2️⃣ 按 8 位拆成两行(GBK 安全)

void splitToTwoLines(const std::string &src, std::string &line1, std::string &line2) { int w = 0; size_t i = 0; // 第一行 for (; i < src.size(); ) { unsigned char c = src[i]; int cw = (c & 0x80) ? 2 : 1; if (w + cw > 8) break; line1.append(src, i, cw == 2 ? 2 : 1); w += cw; i += (cw == 2 ? 2 : 1); } // 第二行(最多 8 位) w = 0; for (; i < src.size(); ) { unsigned char c = src[i]; int cw = (c & 0x80) ? 2 : 1; if (w + cw > 8) break; line2.append(src, i, cw == 2 ? 2 : 1); w += cw; i += (cw == 2 ? 2 : 1); } }

3️⃣ 自动居中主函数(你要的返回 string)

std::string autoCenterGBK_2x8(const std::string &text) { std::string line1, line2; splitToTwoLines(text, line1, line2); int w1 = gbkWidth(line1); int w2 = gbkWidth(line2); // 第一行不满 → 第一行居中 if (w1 < 8) { int left = (8 - w1) / 2; line1 = std::string(left, ' ') + line1; } // 第一行满,第二行不满 → 第二行居中 else if (w2 < 8 && !line2.empty()) { int left = (8 - w2) / 2; line2 = std::string(left, ' ') + line2; } return line1 + "\n" + line2; }

二、效果示例

✅ 示例 1:第一行 3 个中文(6 位)

auto s = autoCenterGBK_2x8("中国人");

显示:

中国人

✅ 示例 2:第一行满 4 个中文,第二行 2 个中文

auto s = autoCenterGBK_2x8("中华人民共和国你好");

显示:

中华人民 共和国你

✅ 示例 3:正好一行 4 个中文

auto s = autoCenterGBK_2x8("测试程序");

显示:

测试程序
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:52:19

EmotiVoice在心理治疗暴露疗法中的辅助作用

EmotiVoice在心理治疗暴露疗法中的辅助作用 在创伤后应激障碍&#xff08;PTSD&#xff09;或特定恐惧症的临床干预中&#xff0c;一个核心挑战是如何安全、可控地引导患者重新面对那些引发强烈焦虑的记忆场景。传统暴露疗法依赖治疗师口头描述情境&#xff0c;或播放预先录制的…

作者头像 李华
网站建设 2026/4/12 16:22:24

为什么工作10年都没遇过分布式锁?

引言&#xff1a;分布式锁的「薛定谔状态」在2025年某次技术峰会上&#xff0c;某互联网大厂架构师分享的监控截图引发热议&#xff1a;核心交易系统QPS峰值突破50万&#xff0c;但分布式锁调用次数为零。这印证了行业中的一个普遍现象——多数开发者终其职业生涯都未真正接触过…

作者头像 李华
网站建设 2026/4/17 14:25:28

冻品小程序开发选哪家?首选万象生鲜配送系统

在生鲜冻品小程序开发领域&#xff0c;选择适配冷链管理、库存精准、履约高效的系统是核心。万象生鲜系统凭借对冻品行业的深度适配、全链路温控与数字化管理能力&#xff0c;成为冻品商家开发小程序的优选方案&#xff0c;下面从行业痛点、系统优势、对比分析等方面详细解析。…

作者头像 李华
网站建设 2026/4/18 1:34:13

langchain agent动态变更系统prompt

一.背景 LangChain Agent 作为大语言模型&#xff08;LLM&#xff09;驱动的智能体核心&#xff0c;** 系统 Prompt&#xff08;提示词&#xff09;** 是其行为准则与决策逻辑的 “顶层设计”—— 它定义了 Agent 的角色定位&#xff08;如 “智能客服”“数据分析师”&#xf…

作者头像 李华
网站建设 2026/4/18 3:35:32

springboot+jspm电力监测报修服务平台_34gate3m

目录已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&…

作者头像 李华
网站建设 2026/4/17 7:57:12

基于PSO - BP的时间序列预测:一键出图的奇妙之旅

基于粒子群优化算法优化BP神经网络(PSO-BP)的时间序列预测 PSO-BP时间序列 一键出图&#xff0c;只需替换成自己数据集即可&#xff0c;有教程。在数据的海洋中&#xff0c;时间序列预测一直是众多领域关注的焦点。今天咱就唠唠基于粒子群优化算法&#xff08;PSO&#xff09;优…

作者头像 李华