学习字符串

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

(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优化:

相关推荐
酿情师6 小时前
yihan:一款面向连续网页学习的智能侧边栏插件
学习·学习方法·工具·学习工具
瞎某某Blinder6 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
love在水一方8 小时前
VLN 入门学习计划 —— 基于 InternNav
学习
red_redemption10 小时前
自由学习记录(175)
学习
nashane11 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
_李小白11 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
勤劳的进取家11 小时前
数据链路层基础
网络·学习·算法
d111111111d12 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
y = xⁿ13 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
d111111111d14 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习