第九章 字符串 §9.1 用字符数组来存放字符串 §9.2 字符串的指针和指向字符串 的指针变量 §9.3 字符串的输入和输出 §9.4 字符串数组 §9.1 用字符数组来存放字符串 一、字符串的概念 1.字符串的定义 由字符组合而成并用“”括起来,借助于字符 型的一维数组来存放,并以字符‘\0’作为字符 串的结束标志,但不计入串的长度。 2.字符串常量 用“”括起来的字符组合,无需在未尾加结束 标志,系统在编译时会自动加上来存储。 二、字符数组 1.字符数组的定义 char s[10]; 或 int s[10]; 2.字符数组的初始化 (1)逐个字符赋给数组中各元素 char s[10]={‘c’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’}; 若初值的个数大于数组长度,则语法错误, 若小于数组长度,则只将这些字符赋给数组 中前面那些元素,其余的元素自动定为空字 符。 注意:如果一个字符数组用来作为字符串使 用,在定义该字符数组时,数组的大小 应该比它将要实际存放的最长字符串多 一个元素,从而给未尾存放空字符留下 空间。 如:char s[ ]={ ‘c’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’}; 若有定义char s[ ]={ ‘c’,’o’,’m’,’p’,’u’,’t’,’e’,’r’ }; 则只是定义了一个有8个字符的字符数组, 不是字符串。 (2)在赋初值时直接赋字符串常量 char s[10]={“computer”}; char s[10]= “computer”; 例:char s[7]= “string!”; 不是字符串 char s[ ]= “string!”; 后一种写法中,系统将按字符串实际长度 来定义数组的大小,即数组长度为8。 (3)在程序执行过程中赋字符串 不能用赋值语句给字符数组名赋一串字符 如: char s[10]; s=”computer”; 给数组元素逐个赋字符值,最后加入串结 束标志 注意:’\0’不能用scanf函数从键盘输入。 三、字符数组与字符串的区别 字符数组的每个元素中可存放一个字符, 但并不限定最后一个字符应该是什么,而字 符串以字符数组的形式存储,但最后一个是 特定字符’\0’。 四、程序举例 P150,例7.8。 §9.2 字符串的指针和 指向字符串的指针变量 一、用字符指针来表示字符串 可以不定义字符数组,而定义一个字符指 针来表示字符串。 char *s= “computer”; C语言对字符串常量是按字符数组处理, 在内存中开辟了一个字符数组来存放字符串 常量。 可以称s为字符串变量,但s中存放的是字符 串首地址而不是字符串本身。 也可写成:char *s; s=“computer”; 注意: 字符串的结束标志是系统自动加上的。 printf(“%s\n”,s); 输出s时,先输出它所指向的一个字符数 据,然后自动使s加1,指向下一个字符,然 后再输出……,直到遇到空字符为止。 通过指针变量和字符数组名都可以输出一 个字符串,而对一个字符数组,不能通过数 组名输出它的全部元素,输出的将是首字符 的地址。 举例:P252,例10.17,10.18。 二、字符指针变量与字符数组 1.字符数组由若干个元素组成,每个元素中 放一个字符,而字符指针变量中存放的是地 址(字符串的首地址)。 2.赋值方式 对字符数组只能对各个元素赋值,不能用以下方 法: char s[10]; s=”computer”; 对字符指针变量,可用下列方法赋值: char *s; s=“computer”; 3.赋初值时,对以下的变量定义和赋初值 char *a=“computer”; 等价于:char *a; a=“computer”; 而对数组初始化时,不能整体赋值。 4.如果定义了一个字符数组,在编译时为它 分配存储单元,它有确切的地址。而定义一 个字符指针变量时,给指针变量分配内存单 元
您可能关注的文档
- 第三课计算机系统的组成方案.ppt
- 第九单元滚动检测试题方案.doc
- 第九套考卷165-166方案.doc
- 第九周总结方案.ppt
- 第三部分文字图层操作技巧2方案.doc
- 第九章 凸轮机构及其设计方案.ppt
- 第九章(螺旋传动)方案.ppt
- 第九章-宏观经济基本指标及衡量方案.ppt
- 第九章_危机决策方案.ppt
- 第三课道德是人生发展、社会和谐的重要条件方案.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)