c语言基础课件.字符串课件_第1页
c语言基础课件.字符串课件_第2页
c语言基础课件.字符串课件_第3页
c语言基础课件.字符串课件_第4页
c语言基础课件.字符串课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 Lichar name15= W, a, n, g, L, i; 用若干个字符用字符数组用字符串字符串常量字符串常量字符串常量是双引号括起的任意字符序列Hello WorldWangPingPlease enter your fu

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

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

5、tf 函数。 printf(n 雇员姓名是: );puts(name);printf(n 雇员所属部门是: );puts(dept);printf(n 雇员姓名是:%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 其中

6、的空格总数为 %d n ,count);C is a programming language在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i 和 count。其中的空格总数为 4字符串处理函数字符串处理函数 5-1q 与字符串有关的内置函数在头文件string.h中定义q 要使用标准库字符串处理函数,程序前应该包含: #include string.hstrlenstrcpystrcmpstrcat字符串处理函数字符串处理函数 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 = 7 string = Shanghai length = 8字符串处理函数字符串处理函数 5-

8、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, target); 源字符串 = We chang

9、e lives 目标字符串 = We change lives字符串处理函数字符串处理函数 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 请输入密码: );gets(pwd);if(strcmp(usernam

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

11、足够存储最终的字符串。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 very good指向字符串的指针指向字符串的指针在C语言中,可以将字符指针指向

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

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

14、; names3 = temp; printf(n %s %s,names2,names3); printf(n);Apple0Banana0Peach0Pineapple0namesStrawberry0Grapes0temp Pineapple Peach Peach Pineapple55485562558355A855B355C9558355A85583字符串作为函数参数字符串作为函数参数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;用户定义版求字符串长度函数总结总结字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论