《C语言》课程教学课件(PPT讲稿)29——C语言——数组——第10章——指针与字符串

第10章字符串10.1字符串常量10.2 如何字符串变量10.3字符串的输入输出10.4字符指针与字符串10.5 字符串处理函数10.6 程序举例
10.1 字符串常量 10.2 如何字符串变量 10.3 字符串的输入输出 10.4 字符指针与字符串 10.5 字符串处理函数 10.6 程序举例 第10章 字符串

字符指针变量与字符串一P2251、用数组实现字符串的访问stTst[0]例1:st[1]D#includest[2]2st[3]intmain()0st[4]YV3st[5]echar st[]="I love China!"st[6]printf("%s(n",st);I love China!st+7Cst[7]printf("%s(n", st+7);China!st[8]hreturn O;ist[9]8了st[10]nst[11]a!st[12]10st[13]
字符指针变量与字符串—P225 1、用数组实现字符串的访问

字符串的处理指针变量与字符串2、用字符指针实现例2:①#include②int main()③1char*p="this is a book";④//p是指针变量,字符串首地址赋给ps?printf("%s\n",p);//整体thisisabookOP=p+10;/ /重新给指针变量P的赋值7printf("%sln",p);book8return O;91注意:C语言允许将字符串常量赋给字符指针,因为字符串常量有确定的地址。注意:以下代码是错误的1)char*st;//字符指针st的值是随机数gets(st);//错误--给随机数表示的地址存入信息原因:指针变量st未初始化,st存储的是一个随机地址数据,程序无法正常运行
例2: ①#include ②int main() ③ { char *p="this is a book"; ④ //p是指针变量,字符串首地址赋给ps ⑤ printf("%s\n" ,p);//整体引用字符串 ⑥ p=p+10;//重新给指针变量 p 的赋值 ⑦ printf("%s\n" ,p); ⑧ return 0; ⑨ } 注意:C语言允许将字符串常量赋给字符指针,因为字符串常量有确定的 地址。 注意:以下代码是错误的: ① char *st;//字符指针st的值是随机数 ② gets(st);//错误-给随机数表示的地址存入信息 原因:指针变量st未初始化,st存储的是一个随机地址数据,程序无法正 常运行。 2、用字符指针实现 字符串的处理-指针变量与字符串

3、指针变量使用注意事项“野指针”操作:如果一个指针没有指向一个有效内存就被引用,则被称为野指针”操作或空指针赋值?野指针操作尽管编译时不会出错,但很容易引起程序运行时表现异常,甚至导致系统崩溃。例3:①char *ps,st[8];②scanf("%s"ps);//错--野指针操作,ps没有指向有效内存ps=st;//对--ps指向数组st所对应内存单元的首地址3
3、指针变量使用注意事项 如果一个指针没有指向一个有效内存就被引用,则被称为 “野指针”操作或空指针赋值。 野指针操作尽管编译时不会出错,但很容易引起程序运行 时表现异常,甚至导致系统崩溃。 例3: ①char *ps, st[8]; ② scanf ( %s ,ps); //错-野指针操作,ps 没有指向有效内存 ③ ps = st; //对-ps指向数组st所对应内存单元的首地址

“野指针”为什么赋值会给程序运行带来极大的危险4指针ps所占内存随机值001-正好是系统程序区地址001char*ps;*ps ="abc";极其危险!X001再次提醒:指针变量只有与有效内存建立联系以后才可使用,否则将造成程序运行异常,基至导致系统死机!值"abc”5/10
再次提醒: 指针变量只有与有效内存建立联系以后才可使用,否 则将造成程序运行异常,甚至导致系统死机! 5/10

字符数组一关系指针变量、字符串、例4:char *p, s[20];①p中可以存放字符串常量的首地址。S数组由若干元素组成,每个元素放一个字符。p="Ilove China!";ⅡIp是字符型指针变量,字符串常量在内存中有存储地址(X)s="I love China!":Ils是数组名一地址常量,不能改变3字符指针要p接受输入字符串时,必须先开辟存储空间例7:char *p,s[10];例5:char s[10];p=s;scanf("%s",s);Vscanf ("%s"p);例6:char*p;//p的值无效scanf("%s", p);(x--给无效地址输入值
例4: char *p,s[20]; ① p 中可以存放字符串常量的首地址。 s 数组由若干元素组成,每个元素放一个字符。 ② p= I love China! ; () // p是字符型指针变量,字符串常量在内存中有存储地址 s= I love China! ; () // s 是数组名—地址常量,不能改变 ③ 字符指针要p接受输入字符串时,必须先开辟存储空间。 指针变量、字符串、字符数组—关系

例:利用字符指针实现字符串的逆序执行过程演示char s[20l,ch,*p,*qgets (s);交换10p=s;q=p+strlen(s)-1End
'I' ' ' 'L' 'o' 'v' 'e' ' ' 'C' 'h' 'i' 'n' 'a' '!' \0

例:利用字符指针实现字符串的逆序。#include#includeint main ()char s[20], ch, *p, *q6gets(s);//读取一个字符串7//p指向字符串的首地址p=s;OOEEBEEq=p+strlen(s)-1;/lq指向字符串的末地址while (p<q)ch=*p;*p=*g;*q=ch;//交换p和q各自指向的字符p++;q--;//移动指针运行结果:abcdefprintf ("%sln", s);fedcbareturn O;

下课了。。研究mrling休息一会儿。。e ngre moae ta keO
下课了。 休息一会儿
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程教学课件(PPT讲稿)30——C语言——数组——第10章——字符串数组与字符串函数.ppt
- 《C语言》课程教学课件(PPT讲稿)01——第11章——结构体(修改).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第1章 绪论.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)数据库系统原理绪论(补充资料).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第2章 关系数据库.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(1/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(2/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(3/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第4章 数据库安全性.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第5章 数据库完整性.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第6章 关系数据理论.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第7章 数据库设计(1/2).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第7章 数据库设计(2/2).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第8章 数据库编程.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第9章 关系查询处理和查询优化.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第10章 数据库恢复技术.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第11章 并发控制.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第13章 数据库新技术发展.ppt
- 《数字图像处理技术》课程教学资源(PPT课件)第二章 图像与成像系统.ppt
- 《数字图像处理技术》课程教学资源(PPT课件)第三章 正交变换.ppt
- 《C语言》课程教学课件(PPT讲稿)28——C语言——数组——第10章——字符数组——基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)27——C语言——指针——第9章——指向数组.ppt
- 《C语言》课程教学课件(PPT讲稿)26——C语言——指针——第9章——指针基本知识——讲授.ppt
- 《C语言》课程教学课件(PPT讲稿)25——C语言——数组——第8章——数组与函数.ppt
- 《C语言》课程教学课件(PPT讲稿)24——C语言——数组——第8章——二维数组.ppt
- 《C语言》课程教学课件(PPT讲稿)23——C语言——数组——第8章——一维数组——移位删除.ppt
- 《C语言》课程教学课件(PPT讲稿)22——C语言——数组——第8章——一维数组——查找逆置.ppt
- 《C语言》课程教学课件(PPT讲稿)21——C语言——数组——第8章——一维数组——排序应用.ppt
- 《C语言》课程教学课件(PPT讲稿)20——C语言——数组——第8章——一维数组——基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)19——C语言——函数——第7章——随机数函数.ppt
- 《C语言》课程教学课件(PPT讲稿)18——C语言——函数——第7章——变量作用域.ppt
- 《C语言》课程教学课件(PPT讲稿)17——C语言——函数——第7章——函数嵌套递归.ppt
- 《C语言》课程教学课件(PPT讲稿)16——C语言——函数——第7章——函数基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)15——C语言——循环嵌套——第6章——5.ppt
- 《C语言》课程教学课件(PPT讲稿)14——C语言——循环结构——第6章——6——break-continue.ppt
- 《C语言》课程教学课件(PPT讲稿)13——C语言——循环结构——for-第6章——4.ppt
- 《C语言》课程教学课件(PPT讲稿)12——C语言——循环结构——逗号表达式-第6章——3.ppt
- 《C语言》课程教学课件(PPT讲稿)11——C语言——循环结构——do-while-第6章——2.ppt
- 《C语言》课程教学课件(PPT讲稿)10——C语言——循环结构——while——第6章——1.ppt
- 《C语言》课程教学课件(PPT讲稿)09——C语言——选择结构——switch——第5章——2.ppt
