- 2
- 0
- 约7.75千字
- 约 55页
- 2026-01-30 发布于山东
- 举报
在定义字符数组时可以省略数组长度,系统会自动根据初值个数确定数组长度。例如:charc[]={′I′,′′,′a′,′m′,′′,′h′,′a′,′p′,′p′,′y′};数组c的长度自动定为10。第29页,共55页。#includestdio.hvoidmain(){charc[10]={‘I’,’’,’a’,’m’,’’,’a’,’’,’b’,’o’,’y’};inti;for(i=0;i10;i++)printf(“%c”,c[i]);printf(“\n”);}(三)字符数组——引用可以引用字符数组中的一个元素,得到一个字符第30页,共55页。在实际编程中,最常用的是字符串。在C中是用字符数组存放字符串。字符串以‘\0’作为串结束符,因此当把字符串存入数组时,也把‘\0’存入数组,并以此作为该字符串是否结束的标志。程序中通过循环扫描字符数组元素,读到‘\0’时候便认为字符串结束。(三)字符数组——字符串和字符串结束标志第31页,共55页。用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志‘\0’。例如:数组charc[]=“cprogram”在内存中的实际存放情况为:(三)字符数组——字符串和字符串结束标志`\0‘是由C编译系统自动加上的。由于采用了`\0’标志,所以在用字符串赋初值时一般无须指定数组的长度,而由系统自行处理。第32页,共55页。charc[]={″China″};printf(″%s″,c);例如在内存中数组c的状态第33页,共55页。(三)字符数组——字符数组的输入输出字符数组的输入输出可以有两种方式:逐个字符输入输出。用”%c”输入或输出一个字符将整个字符串一次输出。用“%s”格式符,charc[]={“China”};printf(“%s”,c);China\0China第34页,共55页。(三)字符数组——字符数组的输入输出注意:输出字符不包括结束符’\0’;用“%s”格式符输出字符串时,printf函数中的输出项时字符数组名,而不是数组元素名。printf(“%s”,c);如果数组长度大于字符串实际长度,也只输出遇’\0’结束如果一个字符数组中包含一个以上’\0’,则遇到第一个’\0’时结束。第35页,共55页。#includestdio.hvoidmain(){ charst[15]; printf(inputstring:\n); scanf(%s,st); printf(%s\n,st);}(三)字符数组——字符数组的输入输出本例中由于定义数组长度为15,因此输入的字符串长度必须小于15,以留出一个字节用于存放字符串结束标志`\0`。对于字符数组,如果不作初始化赋值,则须说明数组长度。应该特别注意的是,当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。例如运行上例,当输入的字符串中含有空格时,运行情况为:第36页,共55页。(三)字符数组——字符数组的输入输出#includestdio.hvoidmain(){charst1[6],st2[6],st3[6],st4[6];printf(inputstring:\n);scanf(%s%s%s%s,st1,st2,st3,st4);printf(%s%s%s%s\n,st1,st2,st3,st4);}从输出结果可以看出空格以后的字符都未能输出。为了避免这种情况,可多设几个字符数组分段存放含空格的串。程序可改写如下:第37页,共55页。(三)字符数组——字符数组的输入输出重要一点:在前面介绍过scanf的各输入项必须以地址方式出现,如a,b等。但在上例中却是以数组名方式出现的,这是为什么呢?这是由于在C语言中规定,数组名就代表了该数组的首地址。第38页,共55页。(三)字符数组——字符串处理函数C语言提供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、转换、复制、搜索几类。用于输入输出的字符串函数,在使用前应包含头文件stdio.h;使用其它字符串函数则应包含头文件string.h。下面介绍几个最常用的字符串函数。第39页,共55页。第1页,共55页。(优选)语言数组详解第2页,共55页。什么是数组???就是一组具有
原创力文档

文档评论(0)