1. 互相转换:
c++ ---> c : cppstr.c_str()
c ---> c++ : string cppstr = string(cstr)
打印时、cout 都可以打印、如果用 printf 等方法那需要 %s
2. c++ string 的方法:
直接点出来,vs提示有多少是多少
3. c 风格 string 的操作:
定义一个 c 风格串有两(三)种方法
给个字符数组让编译器去计算应该有多大,然后把每个字符复制到数组中 (或者可以开个很大的数组,自己写一堆字符进去,然后末尾追加 '/0' )
给个常指针指向串的地址、然后拿str1 不能去改这个串!这个串就是只读的了!
不写长度、让编译器去推测,那么会多开一个空间放 \0
如果想把一个东西格式化后放入字符数组,可以用 sprintf 、但现在推荐使用安全版本、操作后会自动在末尾加 \0
假如偏偏不要 \0 会怎么样?
上一种写法编译器能发现,那咱们偷渡一下、发现果然就炸了、其实 c 库操作字符串的函数都需要拿 \0 去判断是否到头!!!
总结:C字符串一定是字符数组、但只有 末尾(或中间) 带有 ‘\0’ 的字符数组才称的上是C字符串
C串的灵魂就在 \0 的处理!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)