学习字符串

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

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

相关推荐
劈星斩月42 分钟前
监督学习算法 之 决策树
学习·算法·决策树
AOwhisky1 小时前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算
woshihuanglaoshi1 小时前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
世人万千丶11 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
遇乐的果园14 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园15 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_16 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky16 小时前
AI Agent 学习
人工智能·学习
茯苓gao17 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
RD_daoyi18 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎