学习字符串

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

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

相关推荐
Larry_Yanan5 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
做cv的小昊7 小时前
【TJU】信息检索与分析课程笔记和练习(1)认识文献
经验分享·笔记·学习·搜索引擎·全文检索
再睡一夏就好8 小时前
深入Linux线程:从轻量级进程到双TCB架构
linux·运维·服务器·c++·学习·架构·线程
蒙奇D索大8 小时前
【11408学习记录】考研英语长难句拆解三步法:三步拆解2020年真题,攻克阅读难点
笔记·学习·考研·改行学it
好奇龙猫8 小时前
【日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(32):本階段が終わります】
学习
悠闲漫步者8 小时前
第2章 MCS-51单片机的串口和最小系统(学习笔记)
笔记·学习·51单片机
shenghaide_jiahu8 小时前
数学分析简明教程——6.5
学习
shenghaide_jiahu8 小时前
数学分析简明教程——6.4
学习
爱吃泡芙的小白白8 小时前
Agent学习——路由链
学习·agent·路由链
wdfk_prog9 小时前
[Linux]学习笔记系列 -- [fs]buffer
linux·笔记·学习