GD32F4开发踩坑记:Keil5编译报错core_cm4.h缺失的3种修复方案(附详细截图)

核心内容摘要

S32K3 eMios输入捕获(SAIC模式)实现高精度信号周期测量的优化策略
wvp-GB28181-pro企业级部署指南:如何在生产环境实现国标视频平台的稳定运行

3个高效步骤!二维码修复工具QRazyBox从入门到精通

【C / C】带你系统的认识 string从零到精通一次性把 string 搞明白2026 年最新视角涵盖 C 和 C 所有常见用法C 和 C 里string 有三种完全不同的“身份”很多人混着用才踩坑。

我们按难度和使用场景来系统拆解

C 语言里的“string” —— 其实就是 char 数组 ‘\0’C 语言没有内置 string 类型所有字符串都是以\0 结尾的 char 数组。

写法示例含义常见坑点char s[10] “hello”;自动加 ‘\0’占用 6 字节别忘了留位置给 ‘\0’char s[] “hello”;自动推导大小6 字节最安全写法char *p “hello”;字符串常量存放在只读区不可修改p[0] ‘H’; → 段错误char buf[100]; scanf(“%s”, buf);读取输入到 buf超长输入 → 缓冲区溢出经典安全漏洞C 语言常用字符串函数都在 string.h 里函数作用返回值安全注意strlen(s)求长度不含 ‘\0’size_t-strcpy(dest, src)复制包括 ‘\0’dest容易溢出慎用strncpy(dest, src, n)复制最多 n 个字符dest可能不加 ‘\0’要手动补strcat(dest, src)追加dest容易溢出strcmp(s1, s

比较字典序0 / 正 / 负-strstr(hay, needle)查找子串找到位置 / NULL-C 语言安全写法推荐现代 Ccharbuf[100];fgets(buf,sizeof(buf),stdin);// 安全读一行buf[strcspn(buf,\n)]\0;// 去掉换行符

C 里的 std::string —— 真正现代字符串推荐 99% 场景C 引入了string头文件里的std::string它才是我们平时说的“string”。

核心特点自动管理内存无需手动 new/delete动态长度可以随意 append、resize支持 、、[] 等运算符线程安全C11 后标准保证性能极高小字符串优化 SSO常用操作速查表操作方式代码示例说明声明string s “hello”;string s(10, ‘a’);10 个 ‘a’拼接s world;s s “!” ;支持 和 取长度s.length() / s.size()两者等价访问字符s[0], s.at(

at() 会抛异常[] 不抛追加s.append(“abc”);s.push_back(‘d’);插入s.insert(5, “XXX”);在下标 5 插入替换s.replace(2, 3, “new”);从 2 开始替换 3 个字符查找s.find(“world”);s.rfind(“o”);返回位置找不到返回 string::npos截取子串s.substr(0,

;前 5 个字符清空s.clear();s “”;判空s.empty()比较s “hello”s “abc”支持所有比较运算符小技巧合集面试/实战必备string shello, world!;s.erase(5,

;// 删除 , → helloworld!s.erase(s.find(world));// 删除 world 及之后所有格式化字符串C20 及以上最优雅#includeformatstring msgstd::format(Hello {}, your score is {},name,score);C17 结构化绑定 string_view性能神器string_view svhello;// 只读视图不拷贝

C 和 C 混用时的“转换坑”最容易踩雷场景正确写法错误写法会导致崩溃/未定义行为const char* → stringstring s cstr;string s (char*)cstr;string → const char*const char* p s.c_str();const char* p s.data(); C17 前危险string → char 数组strcpy(buf, s.c_str());strcpy(buf, s.data());从 scanf 读到 stringstring s; scanf(“%s”, s[0]); // C11 后可行scanf(“%s”, s); // 错printf 打印 stringprintf(“%s”, s.c_str());printf(“%s”, s); // 错最佳实践2026 年写 C 项目能用std::string就别用 char 数组需要和 C 接口交互时用s.c_str()传出去需要可修改的 char 缓冲区用s.data()C17 后保证可写永远不要忘记string内部可能有小字符串优化SSOdata()不一定指向堆内存

面试/大厂常考 string 题目带解析实现strcpy、strcat、strcmp字符串反转in-place去掉字符串中所有空格判断回文串忽略大小写和非字母实现atoi字符串转整数实现 KMP 算法找子串用 string 实现大整数加法

总结一句话口诀C 里 string char[] ‘\0’C 里 string std::string自动管理、动态、安全、高效你现在用 string 最多遇到哪类问题是拼接性能、内存泄漏、C/C 混用转换、还是面试算法题把具体场景告诉我我可以给你更针对性的代码模板和避坑指南

《滑杆进洞》漫画免费阅读下拉式-《滑杆进洞》漫画免费阅读下拉式应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123