• C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器

九、字符串

  1. 可以用[ ]进行下标访问

  2. 使用string类需将头文件包含在程序中,不能写成string.h;对于头文件cstring提供C语言对字符串处理的有关函数,而头文件string提供C++对字符串处理的新功能

  3. 字符串对象不需要NULL字符结尾

  4. string对象允许用“+”或“+=”实现两个字符串连接操作;可以使用关系运算符比大小

  5. 不可以用关系运算符对字符数组中的字符串进行比较,但string对象可以

  6. ‘\0’是 c/c++ 语言中的字符串结束符

  7. 字符串可以整体输入、输出

  8. 字符串常量不可改,例:“word”

  9. sizeof(a)是指a的内存空间大小(包括最后的\0),strlen() 查找到“\0”就结束(故不包括最后的\0),但sizeof返回的是真个字符串包含'\0'在内占用的字节数

  10. 字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符 ' \0' 自动附加到字符串的尾部作为字符串的结束标志。故字符个数为 n 的字符串在内存中应占( n+1 )个字节

  11. 不同的零所代表的意思:

① ‘0’代表字符0,对应ASCII码值为0x30(也就是十进制48)

② '\0'代表空字符(转义字符)【输出为空】,对应ASCII码值为0x00(也就是十进制 0), 用作字符串结束符,但并不是字符串的一部分

③ 0 代表数字0,若把 数字0 赋值给 某个字符,对应ASCII码值为0x00(也就是十进制)

④ “0”代表一个字符串,字符串中含有 2个字符,分别是 '0' 和 '\0'

  1. strlen()、sizeof()是针对字符的,而length()(C的)、size()(C++的)是针对字符串的

  2. ‘\’不是字符,只有字符'\'

  3. 字符串的结束字符为‘\0’,故算字符串长度的题时要注意

  4. C++允许在字符串上进行整体操作

  5. 不管这个字符变量中有多少个字符,在Visual C++所有字符串变量的长度都是16字节

  6. 字符串函数:

① strcpy() :函数将源字符串复制到缓冲区。没有指定要复制字符的具体数目!如果源字符串碰巧来自用户输入,且没有专门限制其大小,则有可能会造成缓冲区溢出!

② strcat() :函数非常类似于 strcpy(),它可以将一个字符串合并到缓冲区末尾。

③ sprintf()、vsprintf() : 用来格式化文本和将其存入缓冲区的通用函数

  1. 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++篇:第九章_字符串_知识点大全的更多相关文章

  1. 慕课网javascript 进阶篇 第九章 编程练习

    把平常撸的码来博客上再撸一遍既可以加深理解,又可以理清思维.还是很纯很纯的小白,各位看官老爷们,不要嫌弃.最近都是晚睡,昨晚也不例外,两点多睡的.故,八点起来的人不是很舒服,脑袋有点晕呼呼,鉴于昨晚看 ...

  2. day3字典_字符串_文件操作

    一.知识回顾 1.jmeter怎样增加压力机:在主控机配置文件 jmeter.perperties 文件中添加对应压力的IP和对应端口,多台压力机IP用","隔开,保证所有负载机和 ...

  3. 明解C语言 入门篇 第九章答案

    练习9-1 /* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC\0 ...

  4. C Primer Plus_第四章_字符串和格式化输入输出_编程练习

    Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...

  5. 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 ...

  6. jquery中如何以逗号分割字符串_百度知道

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  7. C++第四篇--重载_指针_引用

    C++第四篇--重载_指针_引用 1. 基础知识 重载:函数名相同,根据参数不同(类型.数量.顺序不同)调用同名函数 指针和引用:引用就是别名,引用时必须初始化,引用你定义的变量. int a; in ...

  8. BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法

    BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行 ...

  9. 1.Python_字符串_常用办法总结

    明确:对字符串的操作方法都不会改变原来字符串的值. 1.去掉空格和特殊符号 name.strip() 去掉空格和换行符 name.strip("xx") 去掉某个字符串 name. ...

  10. 《汇编语言 基于x86处理器》第九章字符串与数组部分的代码

    ▶ 书中第九章的程序,主要讲了字符串相关的输入.输出,以及冒泡排序.二分搜索 ● 代码,Irvine32 中的字符串库函数代码范例 INCLUDE Irvine32.inc .data str1 BY ...

随机推荐

  1. C++在HotSpot VM中一种巧妙的内存管理方式

    在HotSpot VM中定义了一个Relocation类及相关的子类,可以通过这些类操作不同的重定位数据,如在CodeCache中读写这些数据.这些类需要的内存很小,但是不同的类需要的内存大小又不一样 ...

  2. python-显示张量(tensorflow)的具体的值

    ------------恢复内容开始------------ # 方法1 a = tf. random.normal ([4,4],mean=0.1,stddev=1) with tf.Session ...

  3. 利用信号量SemaphoreSlim实现PaddleOCR的线程安全访问

    Wlkr.Core.ThreadUtils 项目背景 早在PaddleOCR 2.2版本时期,认识了周杰大佬的PaddleSharp项目,试用其中PaddleOCR时,发现它在改为web api调用时 ...

  4. Mac OS安装Python的pip

    最近牛牛的同学在学习python,但当他使用numpy时出现了报错(。•́︿•̀。) 原因为他的python没有numpy这个库(这个故事很典).然鹅雪上加霜的是,他的电脑是Mac,没有Windows ...

  5. Vue之监听数据变化

    1.轻度监视 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. Pinely Round 2 (Div. 1 + Div. 2) (CF1863)

    本来开了某场远古 Div 1,然后学了一堆前置知识至今仍然不会 E.换一场写来得及吗? A. Channel 模拟,略. B. Split Sort Description 给你一个长度为 \(n\) ...

  7. 线上SQL超时场景分析-MySQL超时之间隙锁

    前言 之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下. 背景说明 分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案 消息表名:mq_messag ...

  8. String 的 indexOf 与 search 方便的区别

    String 这个对象里面包含许多方法 今天只要讲 indexOf 与 search 1.indexOf stringObject.indexOf(searchvalue,fromindex) 2.s ...

  9. Vue 2.x源码学习:数据响应式改造

    内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 相关学习笔记: rend ...

  10. mysql可视化工具有哪些?优点是什么?

    MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),由于其开放源代码和高度可定制化的优势,广受开发者欢迎.为了更加高效地管理 MySQL 数据库,我们通常需要使用 MySQL 可视化工具. ...