C++篇:第九章_字符串_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器
九、字符串
可以用[ ]进行下标访问
使用string类需将头文件包含在程序中,不能写成string.h;对于头文件cstring提供C语言对字符串处理的有关函数,而头文件string提供C++对字符串处理的新功能
字符串对象不需要NULL字符结尾
string对象允许用“+”或“+=”实现两个字符串连接操作;可以使用关系运算符比大小
不可以用关系运算符对字符数组中的字符串进行比较,但string对象可以
‘\0’是 c/c++ 语言中的字符串结束符
字符串可以整体输入、输出
字符串常量不可改,例:“word”
sizeof(a)是指a的内存空间大小(包括最后的\0),strlen() 查找到“\0”就结束(故不包括最后的\0),但sizeof返回的是真个字符串包含'\0'在内占用的字节数
字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符 ' \0' 自动附加到字符串的尾部作为字符串的结束标志。故字符个数为 n 的字符串在内存中应占( n+1 )个字节
不同的零所代表的意思:
① ‘0’代表字符0,对应ASCII码值为0x30(也就是十进制48)
② '\0'代表空字符(转义字符)【输出为空】,对应ASCII码值为0x00(也就是十进制 0), 用作字符串结束符,但并不是字符串的一部分
③ 0 代表数字0,若把 数字0 赋值给 某个字符,对应ASCII码值为0x00(也就是十进制)
④ “0”代表一个字符串,字符串中含有 2个字符,分别是 '0' 和 '\0'
strlen()、sizeof()是针对字符的,而length()(C的)、size()(C++的)是针对字符串的
‘\’不是字符,只有字符'\'
字符串的结束字符为‘\0’,故算字符串长度的题时要注意
C++允许在字符串上进行整体操作
不管这个字符变量中有多少个字符,在Visual C++所有字符串变量的长度都是16字节
字符串函数:
① strcpy() :函数将源字符串复制到缓冲区。没有指定要复制字符的具体数目!如果源字符串碰巧来自用户输入,且没有专门限制其大小,则有可能会造成缓冲区溢出!
② strcat() :函数非常类似于 strcpy(),它可以将一个字符串合并到缓冲区末尾。
③ sprintf()、vsprintf() : 用来格式化文本和将其存入缓冲区的通用函数
- strcmp():比较两个string长度;strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数
④ strncat():char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。与strcat函数类似,但可以检测第一个数组是否能够容纳第二个字符串
⑤ C++里没有对应的split()函数
C++篇:第九章_字符串_知识点大全的更多相关文章
- 慕课网javascript 进阶篇 第九章 编程练习
把平常撸的码来博客上再撸一遍既可以加深理解,又可以理清思维.还是很纯很纯的小白,各位看官老爷们,不要嫌弃.最近都是晚睡,昨晚也不例外,两点多睡的.故,八点起来的人不是很舒服,脑袋有点晕呼呼,鉴于昨晚看 ...
- day3字典_字符串_文件操作
一.知识回顾 1.jmeter怎样增加压力机:在主控机配置文件 jmeter.perperties 文件中添加对应压力的IP和对应端口,多台压力机IP用","隔开,保证所有负载机和 ...
- 明解C语言 入门篇 第九章答案
练习9-1 /* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC\0 ...
- C Primer Plus_第四章_字符串和格式化输入输出_编程练习
Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...
- C Primer Plus_第6章_循环_编程练习
1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...
- jquery中如何以逗号分割字符串_百度知道
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- C++第四篇--重载_指针_引用
C++第四篇--重载_指针_引用 1. 基础知识 重载:函数名相同,根据参数不同(类型.数量.顺序不同)调用同名函数 指针和引用:引用就是别名,引用时必须初始化,引用你定义的变量. int a; in ...
- BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法
BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行 ...
- 1.Python_字符串_常用办法总结
明确:对字符串的操作方法都不会改变原来字符串的值. 1.去掉空格和特殊符号 name.strip() 去掉空格和换行符 name.strip("xx") 去掉某个字符串 name. ...
- 《汇编语言 基于x86处理器》第九章字符串与数组部分的代码
▶ 书中第九章的程序,主要讲了字符串相关的输入.输出,以及冒泡排序.二分搜索 ● 代码,Irvine32 中的字符串库函数代码范例 INCLUDE Irvine32.inc .data str1 BY ...
随机推荐
- nittest单元测试框架—加载测试用例的3种方法以及测试报告存储管理
项目结构 测试用例 import unittest class LoginTestCase(unittest.TestCase): def test_login_success(self): self ...
- Trino容错模式深度测评与思考
本文分享自华为云社区<走向批处理-交互式分析一体化: Trino容错模式深度测评与思考>,作者:HetuEngine九级代言 . 本文系华为云大数据研发团队原创,原创作者:文博,梦月 1 ...
- 记Halo1.5版本迁移Halo2.10.0版本
原文地址: 记Halo1.5版本迁移Halo2.10.0版本 - Stars-One的杂货小窝 上一篇Window10安装linux子系统及子系统安装1Panel面板 - Stars-One的杂货小窝 ...
- 虹科案例 | 虹科Domo商业智能,助力保险公司逃离繁杂数据池!
金融行业的发展充满着不确定性,一个具备强大承保能力和精算专业知识的资金池,对于身处该领域的公司和个人都是十分必要的. 在全国城市联盟(NLC)的协助下成立的NCL Mutual会员制互助保险公司,为各 ...
- 实战攻防演练-Linux写入ssh密钥,利用密钥登录
前言 密钥形式登录的原理是利用密钥生成器制作一对密钥,一只公钥和一只私钥.将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录.这样一来,没有私钥,任何人都无法通过 SSH 暴力破解 ...
- gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your profile(导致的问题:合并不了代码)
gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your pro ...
- NLP文本生成全解析:从传统方法到预训练完整介绍
本文深入探讨了文本生成的多种方法,从传统的基于统计和模板的技术到现代的神经网络模型,尤其是LSTM和Transformer架构.文章还详细介绍了大型预训练模型如GPT在文本生成中的应用,并提供了Pyt ...
- MIT实验警示:人类或需要人工智能辅助才能理解复杂逻辑
麻省理工实验揭示人类的天赋缺陷 麻省理工学院林肯实验室(MIT Lincoln Laboratory)的一项研究表明,尽管形式规范具有数学上的精确性,但人类并不一定能对其进行解释.换句话说就是,人类在 ...
- 在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法——AssemblyMetadataAttribute
在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法--AssemblyMetadataAttribute <# .SYNOPSIS 获取程序集文件属性的指定元数据特性 .DES ...
- 图文剖析 big.js 四则运算源码
big.js,一个小型.快速的用于任意精度的十进制算术的JavaScript 库. big.js 用于解决平常项目中进行算术运算时精度丢失引起的结果不准确的问题.和 big.js 类似的两个库 big ...