c程序设计课件15周.字符串_第1页
c程序设计课件15周.字符串_第2页
c程序设计课件15周.字符串_第3页
c程序设计课件15周.字符串_第4页
c程序设计课件15周.字符串_第5页
已阅读5页,还剩23页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、字符串计算机程序设计I主要内容字符数组及字符串123字符串处理函数指针引用字符串1 字符数组字符数组定义:用来存放字符数据的数组。字符数组中的一个元素存放一个字符。char c10;c0=I; c1= ;c2=a; c3=m;c4= ; c5=h; c6=a; c7=p; c8=p; c9=y;Iam happyc0c1c2c3c4c5c6c7c8c91 字符数组char c10=I, ,a, m, , h, a, p, p, y; char c10=c, ,p,r,o,g,r,a,m;Iam happyc0c1c2c3c4c5c6c7c8c9cpro gram0c0c1c2c3c4c5c6c

2、7c8c91 字符数组二维字符数组初始化:char diamond55= , , *, , *, , *,*, , , , *, , *, , *, , , * ;例6.6 输出一个已知的字符串。解题思路:定义一个字符数组,并用“初始化列表”对其赋以初值用循环逐个输出此字符数组中的字符1 字符数组#include int main() char c15=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.; int i; for(i=0;i15;i+) printf(%c,ci); printf(n); return 0; 1 字符数组在C语言中,是将字符串作为字符数组来处理的。为了测定

3、字符串的实际长度,C语言规定了字符串结束标志0。 0代表ASCII码为0的字符,不是一个可以显示的字符,使一个“空操作符” 。仅起一个供辨别的标志字符串结束标志。1 字符数组char c=”I am happy”;可写成char c=”I am happy”;相当于char c11=”I am happy”;char c10=”China”;可写成char c10=”China”;从c5开始,元素值均为0printf(”%s”,c);China 00000只显示1 字符数组字符数组的输入输出可以有两种方法: 逐个字符输入输出(%c) 整个字符串一次输入输出(%s)输出的字符中不包括结束符0。用

4、%s输出字符串时,printf函数中的输出项是字符数组名。char c=“China”; printf(“%sn”,c);如果一个字符数组中包含多个0,则遇第一个0时输出就结束。1 字符数组char c6;scanf(“%s”,c); China系统自动在China后面加一个0可以用scanf输入字符串,如果输入多个字符串,则输入时以空格隔开。char str15,str25,str35;scanf(”%s%s%s”,str1,str2,str3);How are you? How00str1are00str2you?0str3数组名前不加地址符号&,因为数组名代表数组的起始地址2 字符串处理

5、函数在C函数库中提供了一些用来专门处理字符串的函数:1.puts函数-输出字符串的函数(对比:putchar函数输出单个字符)其一般形式为: puts(字符数组)作用是将一个字符串输出到终端,可以包含转义字符。char str20=“China”;puts(str); 输出China2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:2. gets函数-输入字符串的函数(对比getchar()读入单个字符)其一般形式为: gets(字符数组)作用是输入一个字符串到字符数组char str20;gets(str); Computer2 字符串处理函数在C函数库中提供了一些用来专门处

6、理字符串的函数:3. strcat函数-字符串连接函数其一般形式为: strcat(字符数组1,字符数组2)其作用是把两个字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中使用字符串函数时,在程序开头用#include 2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:3. strcat函数-字符串连接函数 char str130=”People”; char str2=”China”; printf(”%s”, strcat(str1,str2); 输出:PeopleChina要足够大2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:4. st

7、rcpy和strncpy函数-字符串复制strcpy一般形式为: strcpy(字符数组1,字符串2)作用是将字符串2复制到字符数组1中去char str110,str2=”China”;strcpy(str1,str2);China 00000str1要足够大2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:5. strcmp函数-字符串比较函数其一般形式为: strcmp(字符串1,字符串2)作用是比较字符串1和字符串2字符串比较的规则是:将两个字符串自左至右逐个字符相比,直到出现不同的字符或遇到0为止如全部字符相同,认为两个字符串相等若出现不相同的字符,则以第一对不相同的

8、字符的比较结果为准.2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:5. strcmp函数-字符串比较函数如果字符串1=字符串2,则函数值为0如果字符串1字符串2,则函数值为一个正整数如果字符串1str2) printf(”yes”); 错误if(strcmp(str1,str2)0) printf(”yes”); 正确2 字符串处理函数在C函数库中提供了一些用来专门处理字符串的函数:6. strlen函数-测字符串长度的函数其一般形式为:strlen (字符数组)它是测试字符串长度的函数函数的值为字符串中的实际长度 char str10=”China”;printf(”%d

9、”,strlen(str);输出结果是5也可以直接测试字符串常量的长度: strlen(”China”);3 通过指针引用字符串字符串是存放在字符数组中的。两种方法引用:(1) 用字符数组存放一个字符串,可以通过数组名和格式声明“%s”输出该字符串,也可以通过数组名和下标引用字符串中一个字符。(2) 用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量。3 通过指针引用字符串 例8.16 定义一个字符数组,在其中存放字符串“I love China!”,输出该字符串和第8个字符。#include int main() char string=“I love China!”; pri

10、ntf(“%sn”,string); printf(“%cn”,string7); return 0;stringstring+73 通过指针引用字符串 例8.17 通过字符指针变量输出一个字符串。 解题思路:可以不定义字符数组,只定义一个字符指针变量,用它指向字符串常量中的字符。通过字符指针变量输出该字符串。3 通过指针引用字符串#include int main() char *string=“I love China!”; printf(“%sn”,string); return 0;stringchar *string; string=” I love China!”; 3 通过指针引

11、用字符串#include int main() char *string=“I love China!”; printf(“%sn”,string); string=”I am a student.”; printf(“%sn”,string); return 0;string3 通过指针引用字符串用字符数组和字符指针变量处理字符串区别:(1) 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址)。 (2) 赋值方式。可以对字符指针变量赋值,但不能对数组名赋值。char *a; a=”I love China!”; 对char str14;st

12、r0=I; 对char str14; str=”I love China!”; 错3 通过指针引用字符串(3)初始化的含义char *a=”I love China!”;与char *a; a=”I love China!”;等价char str14= ”I love China!”;与char str14; str=”I love China!”; 不等价,这样写是错误的,应该写成:char str=”I love China!”(4) 存储单元的内容 编译时为字符数组分配若干存储单元,以存放各元素的值,而对字符指针变量,只分配一个存储单元3 通过指针引用字符串char *a; scanf(“%s”,a); 错 char *a,str10; 重要:在定义指针变量后,及时指定其指向(5) 指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变。(6) 字符数组中各元素的值是可以改变的,但字符指针变量指向的字符串常量中的内容是不可以被取代的。char a=”House”,*b=” House”;a2=r; b2=r; a=str; scan

温馨提示

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

评论

0/150

提交评论