程序设计基础 杨圣洪 ( since ) 群号: QQ:

Slides:



Advertisements
Similar presentations
只怕有心人只怕有心人 世上无难事世上无难事 浙江长征职业技术学院 — 计算机与信息技术系 — 相方莉制作.
Advertisements

电子成绩单项目实现.
C程序设计 第6章 数 组 主讲教师: 鲁 萍 西安建筑科技大学 理学院 任务:键盘输入整数,排序.
二级指针与二维数组.
第6章 数组 公共计算机基础教研部.
第九章 字串 (String).
第五章 数组、字符串、指针 荆蕾 烟台大学文经学院.
C语言程序设计.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第5讲 数组 5.1 一维数组 5.2 二维数组 5.3 字符串数组 5.4 综合案例分析.
第六章 数 组 主讲教师 贾月乐 联系电话:
高级语言程序设计 主讲人:陈玉华.
程序设计II 第三讲 字符串处理.
C语言高级编程(第四部分) 字符串 北京大学 信息科学技术学院.
第7章 构造数据类型 构造数据类型:数组、结构体、共用体、用户自定义类型 7.1 数组
目录 第八章 数组 1 简单学生成绩管理系统的开发 2 一维数组 3 多维数组 4 字符数组 5 数组作函数参数.
C常用函数 输入输出 stdio.h 字符串处理 string.h 工具函数 stdlib.h 数学函数 math.h
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
第6章 利用数组处理批量数据.
Introduction to the C Programming Language
Chap 8 指针 8.1 寻找保险箱密码 8.2 角色互换 8.3 冒泡排序 8.4 电码加密 8.5 任意个整数求和*
走进编程 程序的顺序结构(二).
主要内容: ◆ 一维数组 ◆二维数组 ◆ 字符数组
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
字符串和字符数组 字符串的输入和输出 字符串的基本操作
第6章 数 组 本章要点: 数组的定义、初始化、数组元素的引用 字符数组的输入输出 字符串处理函数 数组的应用 学习方法建议:
函 数 实验八 第24讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
第四章 数组 4.4.1一维数组的定义和初始化 一、一维数组的定义和初始化 1.一维数组定义 定义格式:类型 数组名[常量表达式];
第五章 习题课 电子信息与计算机科学系 曾庆尚.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
数组 梁春燕 华电信息管理教研室.
第六章 数组 西安工程大学.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第5讲 数组 5.1 一维数组 5.2 二维数组 5.3 字符串数组 5.4 综合案例分析.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第七章 数组.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第4章 数组 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
第12章 字符串处理.
C语言大学实用教程 第6章 数组 西南财经大学经济信息工程学院 刘家芬
第二章 Java基本语法 讲师:复凡.
函式庫補充資料.
第六章 数组.
C语言的特点 1. C程序由许多函数组成 2. C程序必须有且只有一个主函数main( ) 3. 函数用“{”和“}”表示起点和终点
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
Web安全基础教程
第6章 数组.
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
C qsort.
C程序设计.
第4章 数 组.
3.16 枚举算法及其程序实现 ——数组的作用.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
_03宽字符与Unicode编程 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
1.4WIN32中的宽字符.
本节内容 C语言中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 串 String
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
Introduction to the C Programming Language
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
顺序结构程序设计 ——关于“字符串”和数值.
台大資訊工程學系 資料系統訓練班 第119期 吳晉賢
Presentation transcript:

程序设计基础 杨圣洪 13007432216 ( since 1998.12) 群号:81968986 QQ: 2264454709 ysh@hnu.edu.cn kczx.hnu.cn 请访问

第1讲 数组---一维数组-字符数组 (1)什么字符数组? 第1讲 数组---一维数组-字符数组 (1)什么字符数组? 同类型的一组数,类型为char,实际是整数,以前介绍的整数样例在字符数组仍然可以使用。 (2)如何建立字符数组?如何给字符数组赋值 char a[]={‘a’,’b’,’c’,’d’,’e’}; // arrchar1.c 可测长度 char a[N]={‘a’,’b’,’c’,’d’,’e’}; // arrchar2.c N=20(最大长) // 如何测实际长度? char3 char a[N] for(i=0;i<N;i++) {scanf("%c",&a[i]);} //char4 char c[N] for(i=0;i<N;i++) {c[i]=rand()%127;} //char5 3、如何使用数组?换个秩序显示出来 顺序/逆序显示,//char5 求最大值最小值及均值等 //char6.c

第1讲 数组---一维数组 5、如何找出某个元素的值?char7 如何修改一个元素的值?char8 ,给旧值与新 第1讲 数组---一维数组 5、如何找出某个元素的值?char7 如何修改一个元素的值?char8 ,给旧值与新 如何删除一个元素?Char9,char10 前移核码 如何增加一个元素?Char11,char12 后移核码 前后对调即逆置?先实例,j=0—n/2 k来, char13 如何判断它是回文数组?对应位置相同 char14 冒泡排序?前冒,后冒?  Char15,char16 选择排序?插入一个元素到排好序的数组中 排序方法总搜索,写个小报告在班上宣读,班级可搞场排序方法的主题班会,每个小组一个方法,评分方法:听懂程度打分。

字符串处理函数—新例1 例 对于以下字符串,strlen(s)的值为: 字符串长度函数strlen strleny.c 格式:strlen(字符数组) 功能:计算字符串长度 返值:返回字符串实际长度,不包括‘\0’在内 例 对于以下字符串,strlen(s)的值为: (1)char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’}; (2)char s[ ]=“\t\v\\\0will\n”; (3)char s[ ]=“\x69\082\n”; char a[100]={‘a’,‘b’,‘c’,‘d’,‘e’},只有前5个。因字符数组也是整型数组,故95个空位置的值为原始值0,或字符‘\0’, 定义字符数组时,数组的长度必须将‘\0’考虑进来,如 char a[5]={‘a’,‘b’,‘c’,‘d’,‘e’} 时printf(“%s”,a)不能正常输出 需定义成char a[6]={'a','b','c','d','e'}或char a[7]={'a','b','c','d','e'}。 C语言的字符串以'\0'为结束标志,

字符串处理函数—新例2 char a[100]={‘a’,‘b’,‘c’,‘d’,‘e’},只有前5个 将输入字符函数getch(),getche(),getchar()改造成输入字符串的函数。 stringInput.c int inputBygetch(char a[],int n) int inputBygetchDisp(char a[],int n) int inputBygetche(char a[],int n) int inputBygetchar(char a[],int n)

字符串处理函数—新例3 字符串连接函数strcat concaty.c 格式:char *strcat(字符数组1,字符数组2) 功能:把字符数组2连到字符数组1后面 返值:返回字符数组1的首地址 说明:字符数组1必须足够大 连接前,两串均以‘\0’结束; 连接后,串1的‘\0’取消,新串最后加‘\0’ 函数值与字符数组1中,最后都是连接后的内容 自定义函数时: 测出数组1的长度存于aLen中, 数组2的字符i,存于数组1的aLen+I 返回数组2的首地址

字符串处理函数—新例4 字符串拷贝函数strcpy strcpy.c 格式:char * strcpy(字符数组1,字符串2) 功能:将字符串2,拷贝到字符数组1中去 返值:返回字符数组1的首地址 说明:字符数组1必须足够大 拷贝时‘\0’一同拷贝 不能使用赋值语句为一个字符数组赋值 自定义时: 依次将字符串2的每个字符写到数组1中,同时返回数组1的首地址。

字符串处理函数—新例5 字符串比较函数strcmp strcmpy.c 格式:strcmp(字符串1,字符串2) 功能:比较两个字符串 比较:对两串从左向右逐个字符比较(ASCII码), 直到遇到不同字符或‘\0’为止 返值:返回int型整数, a. 若字符串1< 字符串2, 返回负整数 b. 若字符串1> 字符串2, 返回正整数 c. 若字符串1== 字符串2, 返回零 说明:字符串比较不能用“==”,必须用strcmp 自定义时: 从字符0到最后字符’\0’进行比较, 如果字符i不相等则分出高低,结束比较 如果一个数组字符用完了,则未用完的大

字符串处理函数—新例6 大小写字母转换函数 strupy.c 格式: 小写转大写strupr(name) 大写转小写strlwr(name) 功能: 说明:name为字符串数组名 自定义时: 如果是小写字母,则将其asci码-32变大写,仍写回到数组中。 如果是大写字母,则将其asci码+32变小写,仍写回到数组中。

字符串处理函数—新例7 字符串中找特定字符strchr strchrstr.c 格式:char *strcr(字符串a,字符c) 功能:判断c是否在a中出现 返值:返回char *字符串,函数值为“名前有*”的形式,则接受者也是“名前有*” 若字符c在字符串a中出现,则返回出现位置起到最后的字符, 若没有出现则返回长度为的字符串即空串 自定义时: 稍有变化,找到指定字符时,返回其所在的位置,没有找到值为-1

字符串处理函数—新例7 字符串中找特定字符函数strstr strchrstr.c 格式:char *strstr(字符串a,字符b) 功能:判断b是否在a中出现 返值:返回char *字符串,函数值为“名前有*”的形式,则接受者也是“名前有*” 若字符b在字符串a中出现,则返回出现位置起到最后的字符, 若没有出现则返回长度为的字符串即空串 自定义时: 测出子串的长度存于lensub, 让a[i]~a[i+lensub]与b[]进行比较,i=0~lena-lensub 一段一段的比较

第1讲 数组----字符数组 【练习1】统计从键盘输入的字符串中字母、数字和其他字符的个数,并输出统计后的结果。 分析:1、 字符串输入str[100]中, gets(str); 2、字符数组中元素的比较 str[i]>=65 && strp[i]<65+26 str[i]>=97 && strp[i]<97+26 str[i]>='0' && strp[i]<='9' 3、输出结果 。可参考统计不及格人数的例题 【练习2】在一字符数组中查找某个字符,找到了,将其删除,若没找到,则输出NO FIND!!! 参考strchrstr.c中的代码进行查找,参考前几周删除数组元素的代码,删除字符。

第1讲 数组----字符数组 【练习3】空格的ASCII码为32,请编写函数void ltrimy(char a[],char b[]),请将b复制给a,但不将b字符串前面的空格复制到a中。如b=" abcde",复制后a="abcde" 提示:复制前判断了b[i]?=32,若不是复制过去,j表示a[j]当前位置 【练习4】空格的ASCII码为32,请编写函数void rtrimy(char a[],char b[]),请将b复制给a,但不将b字符串尾部的空格复制到a中。如b="abcde ",复制后a="abcde" 【练习5】空格的ASCII码为32,请编写函数void trimy(char a[],char b[]),请将b复制给a,但不将b字符串的空格复制到a中。如b=" ab cde ",复制后a="abcde" 【练习6】请编写函数void trimya(char a[],char b[],char c),请将b复制给a,但不将b字符串的指定字符复制到a中。如b="===b=cde==",c='=',复制后a="abcde"

【例1-5】简单密码检测程序 从键盘输入一串字符,与原密码比较,若不一致, 显示“口令错误,按任意键继续!”,可以比较3次,3次都不正确,退出程序,否则开始执行后面的程序 #include "stdio.h" main( ) { char pass_str[80]; /*定义字符数组passstr*/ int i=0; /*以下为检验密码*/ while(1) { printf ("请输入密码\n"); gets (pass_str); /*输入密码*/ if (strcmp(pass_str,“password”)!=0) printf("口令错误,按任意键继续"); else break; /*密码输入正确,中止循环*/ getch( ); i++; if(i==3) exit(0); /*密码输入第三次错误,退出程序*/ } /*输入正确密码所进入的程序段*/ }

程序运行的结果:??? #include <string.h> #include <stdio.h> main() { char str1[] = ”Hello!", str2[] = ”How are you?”,str[20]; int len1,len2,len3; len1=strlen(str1); len2=strlen(str2); if(strcmp(str1, str2)>0) { strcpy(str,str1); strcat(str,str2); } else if (strcmp(str1, str2)<0) { strcpy(str,str2); strcat(str,str1); } else strcpy(str,str1); len3=strlen(str); puts(str); printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3); } 程序运行的结果:???