学习字符串

字符串就是在""里面写任意字母、数字、中文,或者不写都是字符串

(char既可以表示字符,也可以表示一个字节的整数)

1.定义字符串的两种方式

1)利用字符数组定义字符串

复制代码
char str1[4] = "abc";//这里的长度要写4,因为要给\0留出位置(这一行实际上就是字符数组的表示)
printf("%s\n", str1);

细节1:在底层,实际存储的时候,C语言还是会帮我们把字符串"abc"转化为'a''b''c''\0'进行保存,写成{'a','b','c','\0'};,\0是结束标记

细节2:数组的长度,要么不写,如果要写的话,记得要把结束标记的空格给预留出来,当然长度写得很大,只是多出来的空间浪费了

细节3:通过这种方式定义的是可以修改内容的

例如:

2)利用指针定义字符串

复制代码
char* str2 = "abcd";
printf("%s\n", str2);

细节1:在底层,实际存储的时候,C语言还是会帮我们把字符串"abc"转化为'a''b''c''\0'进行保存,写成{'a','b','c','\0'};,\0是结束标记

细节2:利用指针定义字符串,会把底层的字符数组放在只读常量区

只读常量区的特点:内容不可以修改,但里面使用的字符串可以复用,但是注意,是字符串里面的内容不能修改,但我可以创建一个新的字符串进行记录新的内存地址,即修改指针,

比如:

复制代码
char* str = "abc";
printf("%s\n", str);
//这是修改了内存地址,是可以的
str = "aaa";
printf("%s\n", str);

验证:

练习:

2.string常见函数

|--------|------------------------|
| strlen | 获取字符串的长度(len:长度) |
| strcat | 拼接两个字符串 |
| strcpy | 复制字符串(cpy:copy缩写) |
| strcmp | 比较两个字符串(cmp:compare缩写) |
| strlwr | 将字符串变成小写(lwr:lower缩写) |
| strupr | 将字符串变成大写(upr:upper缩写) |

3.练习

练习1优化:

相关推荐
深蓝海拓1 分钟前
PySide6,QCoreApplication::aboutToQuit与QtQore.qAddPostRoutine:退出前后的清理工作
笔记·python·qt·学习·pyqt
酒鼎2 分钟前
学习笔记(3)HTML5新特性(第2章)
笔记·学习·html5
L***一17 分钟前
2026届大专跨境电商专业毕业生就业能力提升路径探析
学习
.小墨迹29 分钟前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
ZH154558913140 分钟前
Flutter for OpenHarmony Python学习助手实战:模块与包管理的实现
python·学习·flutter
Gain_chance1 小时前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
hqyjzsb1 小时前
盲目用AI提效?当心陷入“工具奴”陷阱,效率不增反降
人工智能·学习·职场和发展·创业创新·学习方法·业界资讯·远程工作
承渊政道1 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
野犬寒鸦3 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
陈桴浮海3 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible