C语言中的字符串
字符串的概念
- 字符串是有序字符的集合
- 字符串是程序中的基本元素之一
- C语言中没有字符串的概念
- C语言中通过特殊的字符数组模拟字符串
- C语言中的字符串是以'\0'结尾的字符数组
字符数组和字符串
在C语言中,双引号引用的单个或者多个字符是一种特殊的字面量
- 存储于程序的全局只读存储区
- 本质为字符数组,编译器自动在结尾加上'\0'字符
鲜为人知的小秘密
- 字符串字面量的本质是一个数组
- 字符串字面量可以看做常量指针
- 字符串字面量中的字符不可改变
- 字符串字面量至少包含一个字符
字符串字面量
"Hello World"是一个无名的字符数组,下面的表达式正确吗?
char b = "abc"[0];
char c = *("123"+1);
char t = *"";
字符串的长度
- 字符串的长度就是字符串所包含字符的个数
- 字符串长度指的是第一个'\0'字符前出现的字符个数
- 通过'\0'结束符来确定字符串的长度
- 函数strlen用于返回字符串的长度
例子1:字符串的使用
#include<stdio.h>
#include<string.h>
int main()
{
char s[] = "hello\0world";
int i = 0;
for(i=0;i<sizeof(s)/sizeof(char);i++)
printf("%c\n",s[i]);
printf("%s\n",s);
printf("%d\n",strlen(s));
printf("%d\n",strlen("123"));
return 0;
}
小结
- C语言中通过字符数组模拟字符串
- C语言中的字符串使用'\0'作为结束符
- 字符串字面量的本质为字符数组
- 字符串相关函数都依赖于结束符'\0'