c语言基础课件9字符串

上传人:ji****72 文档编号:50689084 上传时间:2018-08-09 格式:PPT 页数:23 大小:2.35MB
返回 下载 相关 举报
c语言基础课件9字符串_第1页
第1页 / 共23页
c语言基础课件9字符串_第2页
第2页 / 共23页
c语言基础课件9字符串_第3页
第3页 / 共23页
c语言基础课件9字符串_第4页
第4页 / 共23页
c语言基础课件9字符串_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《c语言基础课件9字符串》由会员分享,可在线阅读,更多相关《c语言基础课件9字符串(23页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、字符。 8字符串I/0函数3-1char name10;scanf(“%s“, name);printf(“%s“, name);格式描述串中使用转换 字符串“%s”Wang LiWang0使用 scanf 时, 不能输入空格Wang9字符串I/0函数3-2char name10;gets(name);puts(name);W angLi0Wang LiWang Li从键盘上读入一个完整的行 ,存入字符数组name。并 用空字符0取代行尾的换行 符n。把字符数组中的字符串输出 到显示器。使用 gets函数 允许输入空格10字符串I/0函数3-3puts 函数完全可以由 printf 函数取代。

5、 当需要按一 定格式输出时,通常使用 printf 函数。 printf(“n 雇员姓名是: “);puts(name);printf(“n 雇员所属部门是: “);puts(dept);printf(“n 雇员姓名是:%s“,name);printf(“n 雇员所属部门是:%sn“,dept);使用puts函数输出字符串使用printf函数输出字符串11字符串示例#include void main() char line30;int i,count = 0;printf(“n 请输入一行字符:n “);gets(line);i=0;while(linei != 0) if(linei =

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

7、的个数作为函数的返回值。在计算字符个数时不计表示字符串结束的空字符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 = 7string = Shanghai l

8、ength = 814字符串处理函数 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 目标字符串 =

9、 %sn“, target); 源字符串 = We change lives目标字符串 = We change lives15字符串处理函数 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 请输入

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

11、include #include void 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 good17指向字符串的指针 在C语言中,可以将字符指针指向字符串 被指向的字

12、符串可以是一个常量字符串,也可以是一个存储 着字符串的字符数组char *ptr = “C Language“; CLanguage0ptrchar *ps=“We change lives“; int n=10; ps=ps+n; printf(“%sn“,ps);W echanglives0pslives18指向字符串的指针char uname30=“wahaha yiyiyaya“; char *p; int count; count = 0; for (p = uname; *p != 0; p+) if (*p = a) count+; W ahahayiyiyaya0psuname

13、count0 5循环19字符指针数组字符指针数组:一个数组中的各个元素都是字符指针char *names = “Apple“, “Pear“, “Peach“, “Banana“;Apple0Pear0Banana0Peach0EE05EE20EE44EE87names各字符串的首地址20字符指针数组示例void main() char *names = “Apple“, “Banana“,“Pineapple“, “Peach“, “Strawberry“, “Grapes“ ;char *temp;printf(“n %s %s“,names2,names3);temp = names2;

14、names2 = names3;names3 = temp;printf(“n %s %s“,names2,names3);printf(“n“); Apple0Banana0Peach0Pineapple0namesStrawberry0Grapes0tempPineapple PeachPeach Pineapple55485562558355A855B355C9558355A8558321字符串作为函数参数void mystrcpy(char dest , char src ) int i = 0;while(srci != 0)desti = srci;i+;desti = 0; 用户

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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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