张传霖的程序设计笔记 第三篇 12月23日

第一部分 知识概括
1、数组是一组具有相同类型的变量的集合,按顺序排列。
2、构成数组的每个数据项称为数组元素或下标变量。
3、元素类型int score[5];从0算起,5个元素
4、字符串实际就是由若干有效字符构成且以字符’/0’作为结束的一个字符序列。字符数组:一维:一个字符串
5、使用字符串处理函数gets(),可以输入带空格的字符串。puts()来输出字符串。
6、常用的字符串处理函数:
strcat(字符串名1,字符串名2):将字符串2连接到字符串1后边,返回字符串1的值
strncat(字符串名1,字符串名2,长度n):将字符串2前n个字符连接到字符串1后边,返回字符串1的值。
strcpy(字符串名1,字符串名2):将字符串2复制到字符串1后边,返回字符串1的值。
strncpy(字符串名1,字符串名2,长度n):将字符串2前n个字符复制到字符串1后边,返回字符串1的值。
strcmp(字符串名1,字符串名2):比较字符串1和字符串2的大小,比较的结果由函数带回;
如果字符串1>字符串2,返回一个正整数;
如果字符串1=字符串2,返回0;
如果字符串1<字符串2,返回一个负整数;
strncmp(字符串名1,字符串名2,长度n):比较字符串1和字符串2的前n个字符进行比较,函数返回值的情况同strcmp函数;
strlen(字符串名):计算字符串的长度,终止符’\0’不算在长度之内
strlwr(字符串名):将字符串中大写字母换成小写字母
strupr(字符串名):将字符串中小写字母换成大写字母
7、顺序查找、折半查找
第二部分 例子
1、编程实现显示用户输入的月份(不包括闰年的月份)拥有的天数:
#include<stdio.h>
#define MONTHS 12 保证输入数据合法的方法
int main()
{
int days[MONTHS]={31,28,31,30,31,30,31,31,31,30,31,30,31};
int month;
do{
printf(“Input a month:”);
scanf("%d",&month);
}while(month<1||month>12); 容错方式
printf(“The number of days is %d\n”,days[month-1];
return 0;
}
2、sort函数用法:
#include
#include
using namespace std;
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
sort(a,a+10);
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
第三部分 过程、感受
1、数据类型 数组名(常量)[整数1][整数2]…[整数n]
int a[5]直接对a的访问,就是访问此数组的首地址。
int a[n]错误:n不能为变量。一旦定义,不能改变大小。
下标越界是大忌
2、while(cin>>x)x有效 输入;x无效 不输入
memset 只能是0或-1
3、二维数组<数组名>[下标1][下标2]
int a[4][10]整型数 数组元素类型一定要一致
数组要定义成全局数组,不要在函数内定义数组。
行列来控制类型,注意换行。
4、sort函数用法:#include
using namespace std;默认的sort函数是按升序排
sort(a,a+n);//两个参数分别为待排序数组的首地址和尾地址
[a,a+n]
bool complare(int a,int b)
return a>b; true 原来排序正确;false 原来排序错误
sort(a,a+10,complare);
5、char chr[5]=“abcd” 字符数组存储字符串,字符串可以修改
6、字符串输入scanf("%s",字符数组名) 输入多个字符串时,以空格分隔。
7、感想:C语言中没有用于表示字符串的关键字以数组形式将字符串输出
字符串和字符数组的区别和联系:
C语言中没有一个用于表示字符串的关键字
c语言的字符串由C的字符数组变形而成,末尾加上’\0’
字符串比字符数组多一个’\0’
联系:
都是一数组形式存储数据,字符之间地址连续,可以用下标来访问,同样的数据如果以字符数组和字符串存储大小有区别,字符串比字符数组大一个’\0’。通过本次课,对于函数的定义和声明,数组以及字符串有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法,由此我学会了如何去理清自己的思路来设计程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值