- 11
- 0
- 约1.38万字
- 约 63页
- 2017-07-03 发布于湖北
- 举报
ch11字符串和字符串函数概要1
Ch11 字符串和字符串函数 字符串和字符指针 字符串常量 array point “I am handsome. 用一对双引号括起来的字符序列 被看做一个特殊的一维字符数组,在内存中连续存放,以空字符结束’\0’ 实质上是一个指向该字符串首字符的指针常量 char sa[ ] = “array”; //字符串常量的存储本质 char * sp = “point”; //字符串常量本身是个指针 字符串 一串以’\0’结尾的字符在C语言中被看作字符串 用双引号括起的一串字符是字符串常量,C语言自动为其添加’\0’终结符 C语言并没有为字符串提供任何专门的表示法,完全使用字符数组和字符指针来处理 字符数组 每个元素都是字符类型的数组 char string[100]; 字符指针 指向字符类型的指针 char * p; 数组和指针可以等同看待,上面三者本质上是一回事 字符串和字符数组 const char m1[40] = { L, i, m, i, t, , y, o, u, r, s, e, l, f, , t, o, , o, n, e, , l, i, n, e, \, s, , w, o, r, t, h, ., \0 }; 字符串和字符指针 char sa[ ] = array; char * sp = point; printf(%s , sa); printf(%s , sp); printf(%s\n, string); 定义方法不同 char str[10]; char * ptr; 赋值方法和含义不同 char str[10]; strcpy(str,”china”); /*正确*/ str = ”china”; /*错误*/ char * ptr; ptr = ”china”; 在定义一个数组时,在编译时即分配单元,有确定地址,而定义一个字符指针变量时,如未对它赋初值,则其所指数据是不定的,因而使用是危险的。 例如,输入字符串时 char str[10]; scanf(%s, str); /*正确*/ char * a; scanf(%s, a); /*错误*/ 应为: char * a; char str[10]; a = str; scanf(%s, a); /*正确*/ 字符指针变量与字符数组的区别 初始化含义不同 1、char * pstr = ”china”; 等价于 char * pstr; pstr = ”china”; 2、char str[6] = ”china”; 不等价于 char str[6]; str[] = ”china”; 字符指针是变量,而数组名是地址常量 字符数组与字符指针的重要区别 字符数组与字符指针的重要区别 用字符串初始化字符数组,是从静态存储区把一个字符串复制给数组,用字符串初始化字符指针,只是复制字符串的地址 不想通过字符指针修改其所指向的字符串,建议: const char * p1 = “Klingon”; //推荐使用 示例 char sa[ ] = This is a string; char * sp = This is a string; strcpy (sa, Hello); sp = Hello; sa = “Hello”; 非法 数组名是常量,不能对它赋值 字符指针-先赋值,后引用 定义字符指针后,如果没有对它赋值,指针的值不确定。 char * s ; scanf(“%s”, s); char * s, str[20]; s = str; scanf(“%s”, s); 定义指针时,先将它的初值置为空 char * s = NULL ; 综合实例:定义字符串 // strings.c – 使用字符串与用户交互 #include stdio.h #define MSG You must have many talents. Tell me some. // a symbolic string constant #define LIM 5 #define LINELEN 81 // maximum string length + 1 综合实例:定义字符串 int main(void) { char name[LINELEN]; char talents[LINELEN]; int i; // initiali
您可能关注的文档
最近下载
- 特定技能2号农业练习题11.docx
- 2026年在带头固本培元、增强党性等五个带头方面对照检查存在的问题、整改措施材料6份文.docx VIP
- 冰川雪山攀登技巧心得分享心得总结.docx VIP
- 小森印刷机s40操作说明.pdf VIP
- 8篇2026年带头固本培元、增强党性(五个带头)方面存在的问题精选.docx VIP
- 翼状胬肉病人护理精品PPT课件.pptx
- 2026年河北省职业病诊断医师资格(尘肺病类)高分突破必练试题库(含答案).docx
- 2024中医临床实践指南穴位埋线减肥.docx VIP
- 人教PEP版五年级下册英语全册教案(单元整体教学设计).docx VIP
- 2025年贵州省公务员考试题及答案解析.docx
原创力文档

文档评论(0)