版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、字符串第十章回顾上一节课主要讲解了以下内容:函数的结构函数声明和函数原型按值传递 / 按地址传递函数的作用域规则多文件程序中的函数函数指针2目标解释字符串变量和常量解释字符串指针执行字符串的输入/输出操作解释各种字符串函数解释如何将数组作为参数传递给函数讲解如何将字符串用作函数参数3字符串变量字符串是以空字符(0)结束的字符数组可以将字符串常量赋给字符串变量字符串常量是由一对双引号括起来的字符序列空字符0自动添加到字符串的内部表示中在声明字符串变量时,应该为这个空结束符预留一个额外元素的空间4声明字符串变量典型的字符串变量声明语句如下所示:char str10;str 是一个字符数组变量,它最
2、多可以容纳包括空结束符在内的 10 个字符str0str1str2str3str4str5str6str7str8str95字符串常量字符串常量是由一对双引号括起来的字符序列字符串中的每个字符作为一个数组元素存储例如 字符串“welcome”在内存中按照如下方式存储:WELLCOME06指向字符串变量的字符指针可以使用字符指针来存储和访问字符串 声明字符指针语法:char* pStr;声明字符串:char str10=“hello”;使用字符指针指向字符串:pStr=str;可以使用字符指针访问字符串,例如pStr0=a; 该代码将第一个字符修改为a7指向字符串常量的字符指针可以声明字符指针直
3、接指向字符串常量,例如char* pStr=“Welcome”;字符指针pStr将指向字符常量“Welcome”“Welcome”为字符串常量,因此其值不能修改,例如代码pStr0=h;将引发一个错误Welcome0字符串常量不能改变8字符串 I/O 操作2-1字符串 I/O 操作是通过函数来实现的,这些函数是标准 I/O 库 stdio.h 的一部分gets() 函数是接受通过标准输入所获得的字符串的最简单的方法它接受按下回车键以前输入的所有字符gets() 函数用“0”字符替换末尾的换行符“n”语法:gets(str);9字符串 I/O 操作2-2puts() 函数用于在标准输出设备上显示
4、字符串语法:puts(str);scanf() 和 printf() 函数用于使用一条语句来接受并显示混合数据类型接受字符串的语法如下所示:scanf(%s, str);显示字符串的语法如下所示:printf(%s, str); 10字符串函数处理字符串的函数可以在标准头文件 string.h 中找到。下面列举了这些函数执行的一些操作: 连接字符串 比较字符串 在字符串中查找一个字符 将一个字符串复制到另一个字符串中 计算字符串的长度11strcat() 函数将两个字符串连接成一个字符串语法:strcat(str1, str2);将 str2 接到 str1 的末尾函数返回 str112str
5、cmp() 函数比较两个字符串并根据比较的结果返回一个整数值语法:strcmp(str1, str2);函数返回值的情况如下: 如果 str1str2,则返回值大于零13strchr() 函数判断某个字符是否在字符串中出现语法:strchr(str, chr);该函数返回值的情况如下:如果该字符在字符串中出现,将返回对应这个字符(由 chr 所指向的)在字符串 str 中第一次出现的指针如果未出现,则返回 NULL14strcpy() 函数将一个字符串中的值复制到另一个字符串中语法:strcpy(str1, str2);str2 的值被复制到 str1 中函数返回 str115strlen()
6、 函数确定字符串的长度语法:strlen(str);该函数返回一个表示 str 的长度的整数值16将数组传递给函数 3- 1当数组被当作参数传递给函数时,传递的只是该数组的地址不带下标的数组名引用的是该数组的地址void main()int ary10;.fn_ary(ary);.17将数组传递给函数 3- 2#includevoid main() int num5, ctr, sum=0; int sum_arr(int num_arr); /* Function declaration */ clrscr(); for(ctr=0;ctr5;ctr+) /* Accepts numbers
7、 into the array */printf( nEnter number %d: , ctr+1);scanf(%d, &numctr);声明数组以及其他变量18将数组传递给函数 3- 3sum=sum_arr(num); /* Invokes the function */printf(“nThe sum of the array is %d, sum);int sum_arr(int num_arr) /* Function definition */int i, total;for(i=0,total=0;i5;i+) /* Calculates the sum */total+=
8、num_arri;return total; /* Returns the sum to main() */函数定义注意函数参数的定义函数调用注意函数参数的传递19运行程序演示运行上述程序,并且解释如何将数组传递给函数20将字符串传递给函数的示例3 - 1#include #include void main() char lines520; int ctr, longctr=0; int longest(char lines_arr20); /* Function declaration */for(ctr=0;ctr5;ctr+) /* Accepts string values into
9、 the array */printf( nEnter string %d: , ctr+1);scanf(%s, linesctr);字符串数组21将字符串传递给函数的示例 3- 2 longctr=longest(lines); /* Passes the array to the function */printf( nThe longest string is %s , lineslongctr);getch();int longest(char lines_arr20) /* Function definition */int i=0, l_ctr=0, prev_len, new_len;prev_len=strlen(lines_arri); /* Determines the length of the first element */函数调用,注意函数参数的传递函数定义注意函数参数的定义22将字符串传递给函数的示例 3- 3 for(i+;iprev_len)l_ctr=i; /* Stores the subscript of the longer string */prev_len=new_len;return l_ctr;/* Returns
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司卫生奖惩制度细则
- 工地安全奖惩制度规定
- 凿岩班组激励奖惩制度
- 德育工作考核奖惩制度
- 小区安保人员奖惩制度
- 县级养殖合作社奖惩制度
- 口才培训中心奖惩制度
- 卫生监督所考核奖惩制度
- 公司统计人员奖惩制度
- 培训机构卫生奖惩制度
- GB/T 24421.2-2023服务业组织标准化工作指南第2部分:标准体系构建
- 2021年高一下物理第六章《圆周运动》测试卷及答案解析
- TB T2075-《电气化铁道接触网零部件》
- 压力性损伤的预防
- 《音响系统组建与调音》电子教案课件
- 紫外线消毒灯使用管理制度
- (新版教材)粤教版六年级下册科学全册课件
- 幕墙施工方案玻璃幕墙 铝单板幕墙
- 广州自来水公司
- 下肢骨折患者功能锻炼
- 抹灰拉毛协议
评论
0/150
提交评论