第六章 数组与指针-数组篇-2004.ppt

第六章 数组与指针-数组篇-2004

6.1 数组 6.1.1 数组的概念 6.1.2 数组的定义、初始化和引用 6.1.3 字符数组 课堂练习 1.判断下面数组的定义写法是否正确 ? (1) int a[0][3]; (2)int i=3 , j=4 ; int a[i][j] ; 2.设计程序,求3*3矩阵A的转置矩阵。A 由键盘输入。 提示:用二重for循环实现,循环体内实现a[i][j]和a[j][i]的互换。 main() { int i,j,t,a[3][3]; for(i=0;i3;i++) for(j=0;j3;j++) scanf(%d,a[i][j]); for(i=0;i3;i++) { for(j=0;j3;j++) printf(%d,a[i][j]); printf(\n); } (5)如果利用一个scanf函数输入多个字符串,则以空格分隔。 例如: char str1[5],str2[5],str3[5]; scanf(“%s%s%s”,str1, str2, str3); 输入数据: How are you? \o ? u o y \o e r a \o w o H (6)scanf函数中的输入项是字符数组 名。输入项为字符数组名时,不要 再加地址符,因为在C语言中数组名代表该数组的起始地 址。下面写法不对: scanf(“%s”,str); 输入后str1、str2、str3数组状态见图 6、字符串处理函数 在C的函数库中提供了一些用来处理字符串的函数,使用 方便。几乎所有版本的C都提供这些函数。下面介绍几种常用 的函数。 其作用是:将一个字符串(以‘\o’结束的字符序列)输出到终端。 (1)puts(字符数组) 例如: char str[ ]={“China\nBeijing”}; puts(str); 输出: China Beijing 在输出时将字符串结束标志‘\o’转换成‘\n’,即输出完字符 串后换行。 (2)gets (字符数组) 其作用是:从终端输入一个字符串到字符数组,并且得到 一个函数值。该函数值是字符数组的起始地址。 如执行下面的函数: gets(str) 从键盘输入:Computer 注意: ① 用puts和gets函数只能输入或输出一个字符串。 ② gets(str) str以回车作为结束。 将输入的字符串“Computer”送给字符数组str,函数值为字符数组str的起始地址。 (3)strcat(字符数组1,字符数组2) 其作用是:连接两个字符数组中的字符串,把字符串2接到字 符串1的后面,结果放在字符数组1中,函数调用后得到一个 函数值—字符数组1的地址。例如: char str1[30]={“People’s Republic of”}; char str2[ ]={“China”}; printf(“%s”,strcat(str1,str2)); 说明: ① 字符数组1必须足够大,以便容纳连接后的新字符串。 ② 连接前两个字符串的后面都有一个‘\o’,连接时将字符串1 后面的‘\o’取消,只在新串最后保留一个‘\o’。 输出: People’s Republic of China (4)strcpy(字符数组1,字符串2) 作用是将字符串2复制到字符数组1中去。例如: char str1[10], str2[ ]={“China”}; strcpy(str1,str2); 执行后,strl的状态如图 \o a n i h C 说明: 字符数组1必须定义得足够大,以便容纳被复制的字符串。 字符数组1的长度不应小于字符串2的长度。 字符数组1必须写成数组名形式(如strl),“字符串2”可以 是字符数组名,也可以是一个字符串常量。如 strcpy(str1,“China”);

文档评论(0)

1亿VIP精品文档

相关文档