串的概念
串,又叫字符串,是由一系列字符组成的数据结构,用于表示文本或字符序列,通常用""或''括起来。
实际在内存中存储的时候,字符串最后还会有一个 '\0' 的字符( '\0' 的ASCII的值为 0 ),它代表了这个串的结尾。
// 串的定义和初始化
char str1[50] = "Hello, ";
char str2[50] = "World!";
char str3[50];
获取串的长度
字符串的长度是指字符串中包含的字符个数。一个每个语言都有内置方法来获取字符串的长度(注意:字符串长度是不包含最后一个 '\0' 的)。
// 获取串的长度
int str1len = strlen(str1);
int str2len = strlen(str2);
printf("str1 的长度为:%d\n", str1len);
printf("str2 的长度为:%d\n", str2len);
串的拷贝
需要创建一个字符串的副本而不想改变原来字符串,一般需要通过遍历实现串的拷贝。
// 串的拷贝
strcpy(str3, str1);
printf("str3 赋值后的字符串: %s\n", str3);
串的比较
串的比较一般通过遍历方式逐一对比两个串是否相等,一些语言内置了比较。
// 串的比较
if (strcmp(str1, "Hello, ") == 0) {
printf("字符串相等\n");
} else {
printf("字符串不相等\n");
}
串的拼接
两个串拼接在一起,一般会申请一块新的内存,新的内存大小是两个需要拼接的字符串长度之和。
先将第一个串的字符挨个赋值到新内存,再将第二个串的字符挨个赋值到新内存,最后加上'\0'。
// 串的拼接
strcat(str3, str2);
printf("拼接后的字符串:%s", str3);
串的索引
可以使用索引来访问字符串中的特定字符。索引从 0 开始,表示第一个字符的位置,依次递增。可以使用方括号 [] 并传入索引值来获取字符。
// 串的索引
for(int i = 0; i < str1len; ++i) {
printf("第 %d 个字符是 %c\n", i, str1[i]);
}
References
- 整理于英雄哪里出来知识星球内容