c语言程序设计——字符串结构概要

上传人:今*** 文档编号:108440492 上传时间:2019-10-24 格式:PPT 页数:44 大小:1.37MB
返回 下载 相关 举报
c语言程序设计——字符串结构概要_第1页
第1页 / 共44页
c语言程序设计——字符串结构概要_第2页
第2页 / 共44页
c语言程序设计——字符串结构概要_第3页
第3页 / 共44页
c语言程序设计——字符串结构概要_第4页
第4页 / 共44页
c语言程序设计——字符串结构概要_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《c语言程序设计——字符串结构概要》由会员分享,可在线阅读,更多相关《c语言程序设计——字符串结构概要(44页珍藏版)》请在金锄头文库上搜索。

1、第十一章,字符串,2,目标,理解字符串常量 理解字符数组和字符串的异同 使用字符串输入/输出函数 使用字符串处理函数 理解指针与字符串的关系 使用字符指针数组 使用字符串作为函数参数,3,字符串简介,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;,用若干个字符,用字符数组,用字符串,4,字符串常量,字符串常量是双引号括起的任意字符序列,“Hello World“ “WangPing“ “Please enter your

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

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

4、 puts(name); printf(“n 雇员所属部门是: “); puts(dept);,printf(“n 雇员姓名是:%s“,name); printf(“n 雇员所属部门是:%sn“,dept);,使用puts函数输出字符串,使用printf函数输出字符串,9,字符串示例,#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

5、n “,count); ,C is a programming language,在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i 和 count。,其中的空格总数为 4,10,字符串处理函数 5-1,与字符串有关的内置函数在头文件string.h中定义 要使用标准库字符串处理函数,程序前应该包含: #include ,string.h,strlen,strcpy,strcmp,strcat,11,字符串处理函数 5-2,语法 strlen(s); 描述 计算字符串s中字符的个数,并将字符的个数作为函数的返回值。在计算字符个数时不计表示字符串

6、结束的空字符0。,strlen,#include #include void main() char arr = “Beijing“; int len1, len2; len1 = strlen(arr); len2 = strlen(“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,12,字符串处理

7、函数 5-3,语法 strcpy(dest,src) 描述 其中,dest是目标字符串,src是源字符串。相当于把字符数组src中的字符串拷贝到字符数组dest中。结束标志0也一同拷贝。src可以是一个字符串常量。字符数组dest应足够大,以保证字符串复制不越界。,strcpy,#include #include void main() char source = “We change lives“; char target20; strcpy(target,source); printf(“n 源字符串 = %s“, source); printf (“n 目标字符串 = %sn“, tar

8、get); ,源字符串 = We change lives 目标字符串 = We change lives,13,字符串处理函数 5-4,语法 strcmp(str1, str2) 描述 按照ASCII码顺序比较字符串str1和str2的大小,比较的结果由函数返回。在两个字符串str1和str2相同时返回0;字符串str1大于字符串str2时返回一个正值,否则就返回负值。,strcmp,#include #include void main() char username15,pwd15; printf(“n 请输入用户名: “ ); gets(username); printf(“n 请输入

9、密码: “); gets(pwd); if(strcmp(username,“John“)=0) ,请输入用户名: john 请输入密码: 123456 用户名和/或密码无效,请输入用户名:John 请输入密码: 123456 您已成功登录,14,字符串处理函数 5-5,语法 strcat(dest, src) 描述 把字符串 src中的字符串连接到字符串 dest中字符串的后面。本函数返回值是字符数组dest的首地址。连接后字符串的总长度将是字符串 src 的长度加上字符串 dest的长度。目标字符串dest的大小应足够存储最终的字符串。,strcat,#include #include v

10、oid 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 very good,15,指向字符串的指针,在C语言中,可以将字符指针指向字符串 被指向的字符串可以是一个常量字符串,也

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

12、“Apple“, “Pear“, “Peach“, “Banana“;,Apple0,Pear0,Banana0,Peach0,names,各字符串的首地址,18,字符指针数组示例,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,n

13、ames3); printf(“n“); ,Apple0,Banana0,Peach0,Pineapple0,names,Strawberry0,Grapes0,temp,Pineapple Peach,Peach Pineapple,5548,5562,5583,55A8,55B3,55C9,5583,55A8,5583,19,字符串作为函数参数,void mystrcpy(char dest , char src ) int i = 0; while(srci != 0) desti = srci; i+; desti = 0; ,用户定义版字符串拷贝函数,int mystrlen (ch

14、ar *s) int n = 0; while (*s != 0) +s; +n; return n; ,用户定义版求字符串长度函数,20,ASCII编码表,ASCII 英文American Standard Code for Information Interchange的缩写。ASCII码是目前计算机最通用的编码标准。 因为计算机只能接受数字信息,ASCII码将字符作为数字来表示,以便计算机能够接受和处理。 ASCII码:美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案, 最多可以给256个字符(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。

15、ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。,21,22,第十二章,结构,24,目标,理解为什么使用结构 定义结构 声明结构变量 访问结构成员 掌握结构作为函数参数的用法,25,结构简介,存储一个班级中 5 名学员的信息(学号、姓名、性别和成绩),问题:,I. 使用数组,解决方案:,score,num,sex,name,不能建立数组间的关系,II. 使用多维数组,C 语言不允许一个数组包含多种数据类型,III. 使用结构,C 语言引入了称为结构的数据存储方式,“结构” 是一种构造数据类型,它是由若干数据项组合而成的复杂数据对象,这些数据项称为结构的成员。,26,定义结构2-1,struct structurename datatype variable1; datatype variable2; . ;,结构成员,;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号