第10章 字符串处理.ppt
《第10章 字符串处理.ppt》由会员分享,可在线阅读,更多相关《第10章 字符串处理.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8 8章章 字符串处理字符串处理主讲教师:郑立垠主讲教师:郑立垠计算机与通信工程学院计算机与通信工程学院 计算机应用技术系计算机应用技术系本章主要内容1、字符数组与字符串的概念2、字符串输入/输出函数3、字符串处理函数字符串的概念p字符串:若干字符的组合看作一个整体,称为字符串p字符串常量:用双引号“”括起的字符序列p字符串的存储p在内存中连续存储,以字符0为结束标识p语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串,使用字符数组或字符指针来处理字符串HelloWorld0“China University of Petroleum“Hello World printf(In
2、put a number:n“)定界符定界符ASCII码值为码值为0字符数组p字符数组每个元素都是字符类型的数组,它的每个元素存放一个字符(占一个字节)p字符数组的定义如 char c10;数组c是一维数组,它可以存放10个字符,或者一个长度不大于9的字符串如 char name310;数组c是二维数组,它可以存放30个字符,或者3个长度不大于9的字符串注意:字符串只能存放在数组中一维字符数组的初始化l用字符常量赋值如:char c5=C,h,i,n,a;又如:char c6=C,h,i,n,a,0;再如:char c7=C,h,i,n,a;ChinaChina0不是字符串不是字符串是字符是字
3、符串串China00表示空字符表示空字符NULL一维字符数组的初始化l用字符串常量赋值如:char c6=”China”;或者char c6=”China”;China0是字符是字符串串 注注:以以字字符符串串方方式式赋赋值值时时,必必须须保保证证数数组组元元素素个个数数字字符个数符个数+1,(字符串后面自动加上一个(字符串后面自动加上一个0)。)。一维字符数组的初始化l省略数组长度如:char c=C,h,i,n,a;再如:char c=”China”;注意:不可以为数组单独整体赋值,例如char str10;str=”China”;ChinaChina0不是字符串不是字符串是字符是字符串串
4、字符数组元素的引用可以为数组元素赋值,也可以输入/输出元素的值【例】对字符数组c1赋值09,对字符数组c2赋值AZ,然后输出c1和c2中的数据/chap8ex1.c#include int main()char c110,c226;int i;for(i=0;i10;i+)c1i=i+48;for(i=0;i26;i+)c2i=i+A;for(i=0;i10;i+)printf(%c,c1i);printf(n);for(i=0;i26;i+)printf(%c,c2i);printf(n);return 0;字符串的输入和输出C语言中常用的字符串输入输出函数有语言中常用的字符串输入输出函数有
5、scanf和和printf、gets和和puts等等1、printf函数一般格式为:printf(%s,字符数组名或字符串常量)其中,%s为字符串描述符例如:char c15=“Hello China!n;printf(%s,c);printf(%s,Hello China!n);注意注意:用格式:用格式%s%s控制输出控制输出 1.1.输出项一定要是地址输出项一定要是地址 2.2.遇到遇到00便结束输出便结束输出字符串的输入和输出2、scanf函数一般格式为:scanf(%s,字符数组)其中,%s为字符串描述符,对应的输入项是字符数组的首地址例如:char c10;scanf(%s,c);注
6、意注意:scanfscanf 接收数据的变量要求的是接收数据的变量要求的是地址地址:对简单变量对简单变量(数组元素数组元素),前面加,前面加&对一维数组,对一维数组,数组名数组名就是数组的首地址就是数组的首地址 对二维数组,只写对二维数组,只写行下标行下标是本行首地址是本行首地址无需加无需加“&”字符串的输入和输出示例/chap8ex2.c#includeint main()char s115;char s2=L,i,s,i,0;char s3=Wang wu;int i=0;printf(请向数组中输入一个姓名:请向数组中输入一个姓名:);scanf(%s,s1);printf(第一个字符串
7、是:第一个字符串是:);while(s1i!=0)printf(%c,s1i);i+;printf(n 第二个字符串是:第二个字符串是:);printf(%s,s2);printf(n 第三个字符串是:第三个字符串是:);printf(%sn,s3);return 0;#include int main()char str20;printf(输入一个字符串:输入一个字符串:);scanf(%s,str);printf(输入的字符串为:输入的字符串为:%s,str);printf(n);return 0;字符串的输入和输出输入一个字符串:输入一个字符串:Hello使用使用 scanfscanf
8、时,不时,不能输入空格能输入空格输入的字符串为:输入的字符串为:Hello输入一个字符串:输入一个字符串:Hello China输入的字符串为:输入的字符串为:Hellouscanfscanf函数使用空白(空格、制表符、回车符等)函数使用空白(空格、制表符、回车符等)作为输入数据的分隔符,所以只能获取作为输入数据的分隔符,所以只能获取“单词单词”uscanfscanf函数只能输入不包括空格、函数只能输入不包括空格、tt和和nn的字符串的字符串字符串的输入和输出3、字符串输入函数gets()调用格式:gets(字符数组)功能:从键盘输入一个字符串(以回车结束以回车结束)存入字符数组中,用空字符0
9、取代行尾的换行符n,并返回一个函数值,该函数值是字符数组的首地址。4、字符串输出函数puts()调用格式:puts(字符数组或字符串常量)功能:输出一个字符串,输出后自动换行 即即 puts(str)与与 printf(%sn,str)等价等价使用使用gets()函数允许在字符串中输入空格函数允许在字符串中输入空格#include int main()char str15;printf(输入一个字符串:输入一个字符串:);gets(str);printf(“输入的字符串是:输入的字符串是:);puts(str);return 0;字符串的输入和输出使用使用 gets函数允函数允许许输入空格输入
10、空格输入一个字符串:输入一个字符串:Hello China输入的字符串是:输入的字符串是:Hello ChinaHelloChina0字符串示例【例】输入一句话,统计空格的个数#include int main()char line80;int i,count;printf(请输入一行字符请输入一行字符:);gets(line);i=0;count=0;while(linei!=0)if(linei=)count+;i+;printf(n 其中的空格总数为其中的空格总数为%d n,count);return 0;for(i=0,count=0;linei!=0;i+)if(linei=)cou
11、nt+;字符串数组p字符串数组是存放了若干字符串的字符数组,是一个二维数组,每个字符串占一行,字符串的个数对应数组的行数。p字符串数组的定义为:char 数组名字符串个数字符串长度如:char str320;p可将字符串数组当作一维数组使用,这个一维数组中的每个元素是一个字符串。字符串数组字符串数组的初始化:char a38=str1,str2,string3;char b 6=s1,st2,str3;字符串的引用q将字符串数组当作一维数组使用,这个一维数组中的每个元素是个一维数组:a0,a1,a2q引用二维字符数组的行下标:a0,a1,a2str1str200string30000000a0
12、a00a1a2数组数组a初始化后的存储情况初始化后的存储情况字符串数组示例【例】输入数字星期几(星期天用0表示),输出对应的英文名称。分析:建立如下星期表:用二维字符数组存储星期表,每行存一个字符串S u n day 0M o n day 0T uesday 0W ed nesday 0T h ursday 0Friday 0S aturday 001234560123456789SundayMondayTuesdayWednesdayThursdayFridaySaturday0123456字符串数组示例/chap8ex3.c#include int main()char w_day 10=
13、Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;int num;printf(Enter a number(06):);scanf(%d,&num);if(num=0&num=6)printf(%d:%s n,num,w_daynum);else printf(Error number!n);return 0;do printf(Enter a number(06):);scanf(%d,&num);while(num6);字符串处理函数q与字符串有关的内置函数在头文件与字符串有关的内置函数在头文件string.h中定义中定义q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 字符串处理 10 字符串 处理
限制150内