学习必备 欢迎下载
《C语言程序设计》课程教案表
授课题目 第四章 数组(3)——字符数组和字符串 教学目的和要求 1.掌握:几种常用的字符串处理函数 2.熟悉:指针与数组。 教学内容 1.基本内容:(1)几种常用的字符串处理函数(2)指针与数组。 2.重点:几种常用的字符串处理函数 3.难点:指针与数组 讲课进程和时间分配 1、复习与新知识导入(5分钟) 2、字符串处理函数(45分钟) C语言编译系统中,提供了很多有关字符串处理的库函数。下面介绍几个常用的字符串处理函数。使用输入、输出字符和字符串函数时,应在函数前加上头文件“stdio.h”;使用其他字符串操作函数时,则应加上头文件“string.h”。 板书:#include
格式:strcat(字符串1,字符串2) 功能: 连接两个字符串中的字符,把字符串2的字符连接到字符串1的字符后面,结果放在字符串1中,函数调用后得到一个函数值——字符串1的起始地址。 例如: char str1[30]={“people′s republic of”}; char str2[]={“china”}; printf(“%s”,strcat(str1,str2)); 输出:people′s republic of china 说明:1)字符串1必须足够大,以便能容纳连接后的新字符串。 2)连接前两个字符串后面都有一个‘\\0’,连接时将字符串1后面的‘\\0’取消,只在新串的最后保留一个‘\\0’。 思考:以下程序是正确的 char c; c=’A’+’B’; 那么,下面的程序呢?char c[10];c=”A”+”B”;是不正确的,必须用strcat()函数来连接。 (4)字符串拷贝函数strcpy 格式:strcpy(字符数组,字符串) 功能: 将字符串拷贝到字符数组中去。 例如: char str1[10],str2[]={“china”}; strcpy(str1,str2); /* 或strcpy(str1,“china”); */ 执行后str1的内容为: china\\0\\0\\0\\0\\0 说明: 1)字符数组必须足够大,以便能容纳被拷贝的字符串。 2)拷贝时连同字符串后面的‘\\0’一起拷贝到字符数组中。 3)不能用赋值语句将一个字符串常量或字符数组直接赋给一 个字符数组。 下面的用法是错误的:str1={“china”};str1=str2;而只能用拷贝函数strcpy处理。 用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。 如下面是合法的:char a[5],c1,c2;c1=‘A’;c2=‘B’;a[0]=‘c’;a[1]=‘h’;a[2]=‘i’;a[3]=‘n’;a[4]=‘a’; 4)可以用strcpy函数将字符串中前面若干个字符拷贝到字符数组中去。 例如:strcpy(str1,str2,2); 将str2中前面2个字符拷贝到str1中去,然后再加一个‘\\0’。 (5)字符串比较函数 格式:strcmp(字符串1,字符串2) 功能: 比较字符串1和字符串2的大小。 说明: 按照ASCII码值大小比较,将两个字符串自左至右逐个字符比较,直到出现不同的字符或遇到‘\\0’为止。如果全部字符相同,则认为相等;如果出现不相同的字符,则以第一个不相同字符的比较结果为准。 1.字符串1==字符串2,函数值=0; 2.字符串1>字符串2,函数值>0; 3.字符串1<字符串2,函数值<0。 两个字符串的比较,不能用以下形式 str1==str2或str1>str2只能用 strcmp(str1,str2)>0或==0或<0来判断 (6)测试字符串长度函数 学习必备 欢迎下载
格式:strlen(字符数组) 功能: 测试字符串长度,函数值为字符串中实际长度,不包括‘\\0’。例如: char str[10]={“china”}; printf(“%d”,strlen(str)); 结果为: 5 (7)字符串小写函数 格式:strlwr(字符串) 功能: 将字符串中大写字母转换成小写字母。lwr是lowercase(小写)的缩写。 (8)字符串大写函数 格式:strupr(字符串) 功能:将字符串中小写字母转换成大写字母。upr是uppercase(大写)的缩写。 (9)字符数组程序举例 1)输入一个字符串,将其中的大写字母均变成小写字母。 # include