c语言基础课件9.字符串.ppt

上传人:sccc 文档编号:5342378 上传时间:2023-06-27 格式:PPT 页数:23 大小:2.35MB
返回 下载 相关 举报
c语言基础课件9.字符串.ppt_第1页
第1页 / 共23页
c语言基础课件9.字符串.ppt_第2页
第2页 / 共23页
c语言基础课件9.字符串.ppt_第3页
第3页 / 共23页
c语言基础课件9.字符串.ppt_第4页
第4页 / 共23页
c语言基础课件9.字符串.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《c语言基础课件9.字符串.ppt》由会员分享,可在线阅读,更多相关《c语言基础课件9.字符串.ppt(23页珍藏版)》请在三一办公上搜索。

1、第九章,字符串,回顾 2-1,根据变量的作用域可以将变量划分为:局部变量和全局变量根据变量的存储类型(决定生存期)将变量划分为:自动变量、寄存器变量、静态变量、外部变量静态局部变量的生存期为整个源程序,但其作用域为定义该变量的函数静态全局变量的生存期为整个源程序,其作用域为定义该变量的源文件,回顾 2-2,采用传值调用方式时,在被调用函数中改变形参的值,只是改变其副本值,而不会影响调用函数中实参值采用传址调用方式时,传递的是变量的地址值,这样在被调函数中,对形参的操作实际上操作的是实参本身数组作为函数传递时,实际采用传址方式,目标,理解字符串常量理解字符数组和字符串的异同使用字符串输入/输出函

2、数使用字符串处理函数理解指针与字符串的关系使用字符指针数组使用字符串作为函数参数,本章结构,字符数组和字符串,字 符 串,字符串作函数参数,字符串处理函数,字符串的输入输出函数,指针和字符串,字符指针数组,字符串简介,char a=W;char b=a;char c=n;char d=g;char e=L;char f=i;,如何让程序存储我的姓名?,Wang Li,char name15=W,a,n,g,L,i;,用若干个字符,用字符数组,用字符串,字符串常量,字符串常量是双引号括起的任意字符序列,Hello WorldWangPingPlease enter your full name:

3、Hello Accp,字符串常量中可以包含转义序列,字符串结束符,字符串与字符数组,在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串字符数组和字符串的区别是:字符串的末尾有一个空字符 0,字符串可按如下方式声明并初始化:char name15=W,a,n,g,L,i,0;char name15=WangLi;char password=12345678;,手工加入一个空字符,系统将自动加入一个空字符,省略数组大小,系统自动计算,大小为后面的字符总数加1,最后一个元素存入一个空字符。,字符串I/0函数3-1,char name10;,scanf(%s,name);,printf(

4、%s,name);,格式描述串中使用转换字符串“%s”,Wang Li,Wang,字符串I/0函数3-2,char name10;gets(name);puts(name);,Wang Li,Wang Li,从键盘上读入一个完整的行,存入字符数组name。并用空字符0取代行尾的换行符n。,把字符数组中的字符串输出到显示器。,字符串I/0函数3-3,puts 函数完全可以由 printf 函数取代。当需要按一定格式输出时,通常使用 printf 函数。,printf(n 雇员姓名是:);puts(name);printf(n 雇员所属部门是:);puts(dept);,printf(n 雇员姓名

5、是:%s,name);printf(n 雇员所属部门是:%sn,dept);,使用puts函数输出字符串,使用printf函数输出字符串,字符串示例,#include void main()char line30;int i,count=0;printf(n 请输入一行字符:n);gets(line);i=0;while(linei!=0)if(linei=)count+;i+;printf(“n 其中的空格总数为%d n,count);,C is a programming language,在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i

6、 和 count。,其中的空格总数为 4,字符串处理函数 5-1,与字符串有关的内置函数在头文件string.h中定义要使用标准库字符串处理函数,程序前应该包含:#include,string.h,strlen,strcpy,strcmp,strcat,字符串处理函数 5-2,语法 strlen(s);描述计算字符串s中字符的个数,并将字符的个数作为函数的返回值。在计算字符个数时不计表示字符串结束的空字符0。,strlen,#include#include void main()char arr=Beijing;int len1,len2;len1=strlen(arr);len2=strle

7、n(Shanghai);printf(n string=%s length=%d,arr,len1);printf(n string=%s length=%d n,Shanghai,len2);,string=Beijing length=7 string=Shanghai length=8,字符串处理函数 5-3,语法 strcpy(dest,src)描述其中,dest是目标字符串,src是源字符串。相当于把字符数组src中的字符串拷贝到字符数组dest中。结束标志0也一同拷贝。src可以是一个字符串常量。字符数组dest应足够大,以保证字符串复制不越界。,strcpy,#include#i

8、nclude void main()char source=We change lives;char target20;strcpy(target,source);printf(n 源字符串=%s,source);printf(n 目标字符串=%sn,target);,源字符串=We change lives 目标字符串=We change lives,字符串处理函数 5-4,语法strcmp(str1,str2)描述按照ASCII码顺序比较字符串str1和str2的大小,比较的结果由函数返回。在两个字符串str1和str2相同时返回0;字符串str1大于字符串str2时返回一个正值,否则就返

9、回负值。,strcmp,#include#include void main()char username15,pwd15;printf(n 请输入用户名:);gets(username);printf(n 请输入密码:);gets(pwd);if(strcmp(username,John)=0),请输入用户名:john 请输入密码:123456 用户名和/或密码无效,请输入用户名:John 请输入密码:123456 您已成功登录,字符串处理函数 5-5,语法 strcat(dest,src)描述把字符串 src中的字符串连接到字符串 dest中字符串的后面。本函数返回值是字符数组dest的首

10、地址。连接后字符串的总长度将是字符串 src 的长度加上字符串 dest的长度。目标字符串dest的大小应足够存储最终的字符串。,strcat,#include#includevoid main()char source_string=is very good;char target_string30=ACCP 4.0;strcat(target_string,source_string);printf(n 源字符串=%s,source_string);printf(n 目标字符串=%sn,target_string);,源字符串=is very good 目标字符串=ACCP 4.0 is

11、very good,指向字符串的指针,在C语言中,可以将字符指针指向字符串被指向的字符串可以是一个常量字符串,也可以是一个存储着字符串的字符数组,char*ptr=C Language;,char*ps=We change lives;int n=10;ps=ps+n;printf(%sn,ps);,lives,指向字符串的指针,char uname30=wahaha yiyiyaya;char*p;int count;count=0;for(p=uname;*p!=0;p+)if(*p=a)count+;,uname,0,5,循环,字符指针数组,字符指针数组:一个数组中的各个元素都是字符指针

12、,char*names=Apple,Pear,Peach,Banana;,Apple0,Pear0,Banana0,Peach0,names,各字符串的首地址,字符指针数组示例,void main()char*names=Apple,Banana,Pineapple,Peach,Strawberry,Grapes;char*temp;printf(“n%s%s,names2,names3);temp=names2;names2=names3;names3=temp;printf(n%s%s,names2,names3);printf(n);,Apple0,Banana0,Peach0,Pine

13、apple0,names,Strawberry0,Grapes0,temp,Pineapple Peach,Peach Pineapple,5548,5562,5583,55A8,55B3,55C9,5583,55A8,5583,字符串作为函数参数,void mystrcpy(char dest,char src)int i=0;while(srci!=0)desti=srci;i+;desti=0;,用户定义版字符串拷贝函数,int mystrlen(char*s)int n=0;while(*s!=0)+s;+n;return n;,用户定义版求字符串长度函数,总结,字符串与字符数组的区别是字符串的末尾有一个空字符0以标识字符串结束用scanf()语句读入字符串时不允许输入中存在空格gets()和 puts()函数分别用于字符串的输入和输出在 string.h 中定义了很多字符串处理函数函数,比较常用的有:strcpy()、strcat()、strcmp()和 strlen()假如程序里需要一组字符串,一种常用的做法就是用一个字符指针数组表示它们字符串可以作为参数,函数传递机制同数组作为参数,为引用方式,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备2025010119号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000987号