1、字符串的概念
字符串是有序字符的集合
字符串是程序中的基本元素之一
C语言中没有字符串的概念
-C语言中通过特殊的字符数组模拟字符串
-C语言中的字符串是以'\0'结尾的字符数组2、字符数组与字符串
在C语言中,双引号引用的单个或多个字符是一种特殊的字面量
-存储于程序的全局只读存储区
-本质为字符数组,编译器自动在结尾加上'\0'字符下面那些是字符串的定义?
3、实例分析
字符数组与字符串 30-1.c
- #include <stdio.h>
- int main()
- {
- char ca[] = {'H', 'e', 'l', 'l', 'o'};
- char sa[] = {'W', 'o', 'r', 'l', 'd', '\0'};
- char ss[] = "Hello world!";
- char* str = "Hello world!";
- printf("%s\n", ca);
- printf("%s\n", sa);
- printf("%s\n", ss);
- printf("%s\n", str);
- return 0;
- }
4、鲜为人知的小秘密
你知道吗?
-字符串字面量的本质是—个数组
-字符串字面量可以看作常量指针
-字符串字面量中的字符不可改变
-字符串字面量至少包含—个字符
5、字符串字面量
"Hello World ! "是—个无名的字符数组
下面的表达式正确吗?
6、实例分析
字符串字面量的本质 30-2.c
- #include <stdio.h>
- int main()
- {
- char b = "abc"[0];
- char c = *("123" + 1);
- char t = *"";
- printf("%c\n", b);
- printf("%c\n", c);
- printf("%d\n", t);
- printf("%s\n", "Hello");
- printf("%p\n", "World");
- return 0;
- }
7、字符串的长度
字符串的长度就是字符串所包含字符的个数
字符串长度指的是第—个'\0'字符前出现的字符个数
通过'\0'结束符来确定字符串的长度
函数 strlen用于返回字符串的长度8、编程实验
strlen的使用 30-3.c- #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;
- }
9、小结
C语言中通过字符数组模拟字符串
C语言中的字符串使用'\0'作为结束符
字符串字面量的本质为字符数组
字符串相关函数都依赖于结束符'\0'