第五讲 字符数组定义及初始化_第1页
第五讲 字符数组定义及初始化_第2页
第五讲 字符数组定义及初始化_第3页
第五讲 字符数组定义及初始化_第4页
第五讲 字符数组定义及初始化_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目六批量数据的处理第五讲字符数组定义及初始化C语言程序设计任务驱动式教程问题导入字符数组什么样的变量可以接收多个字符?字符数组-定义任务五一维字符数组的定义格式:

char

数组名[常量表达式];例如:chara[10];二维字符数组的定义格式:

char

数组名[常量表达式1][常量表达式2];例如:charb[3][4];字符数组可存放字符的数组。每个数组元素可存放一个字符。字符数组-初始化任务五对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。如:charc[10]={‘I’,‘└┘’,‘a’,‘m’,‘└┘’,‘h’,‘a’,‘p’,‘p’,‘y’};

等价于:c[0]=‘I’;c[1]=‘└┘’;c[2]=‘a’;c[3]=‘m’;c[4]=‘└┘’;c[5]=‘h’;c[6]=‘a’;c[7]=‘p’;c[8]=‘p’;c[9]=‘y’;

以上定义C为字符数组,包含10个元素,赋值后数组的状态如图所示。c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]I└┘am└┘happy字符数组-初始化任务五char

s[5]={‘S’,‘t’,‘u’,‘d’,‘y’};对字符数组元素赋初值,即初始化。定义字符数组的同时用字符为其赋初值

等价于char

s[6]=“Study”;字符间用逗号分隔Studys定义字符数组的同时用字符串为其赋值。

char

s[6]={“Study”};Study\0

s【情况1】【情况2】字符数组-初始化任务五定义二维字符数组的同时用字符串赋值。char

str[3][10]={“keyboard”,“mouse”,“monitor”

};

str[0]str[1]str[2]strkeyboard\0

\0

mouse\0\0\0\0\0monitor\0\0\0【情况3】字符数组-初始化任务五二维字符数组可存放多个字符串。第一维的长度代表要存储的字符串的个数,可以省略;第二维的长度不能缺省,应按最长的字符串长度设定。char

book[3][8]={”Math”,”English”,”Physics”};等价于:char

book[][8]={”Math”,”English”,”Physics”};【情况4】字符数组-初始化任务五charc[10]={’I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’};

charc[10]={’c’,’’,’p’,’r’,’o’,’g’,’r’,’a’,’m’};Iam

happyc[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]cprogram\0c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]字符数组-初始化-说明任务五①在定义数组时,可以用省略第一维大小的方法来初始化一个数组的各个元素.②二维字符数组的初始化可以用初始值表的方法,也可以用字符串常量的方法.chars5[3][4]={{'a','b','c','\0'},{'1','2','3','\0'},{'m','n','l','\0'}};chars5[3][4]={"abc","123","mnl"};chars5[][4]={"abc","123","mnl"};③字符数组在使用时,不能将一个字符串直接赋给一个字符数组名,只能对字符数组的元素逐个赋值。chars[10];s="abcde";chars3[]="abcde";例如:例如:例如:字符数组-初始化-说明任务五charstr1[]={’H’,’e’,’l’,’l’,’o’,’\0’};charstr2[]={’H’,’e’,’l’,’l’,’o’};str2是字符数组,但不是字符串。字符串的末尾必须要以‘\0’结束。6个元素5个元素

charstr[5]=”Hello”;

/*存储空间不够*/字符数组-初始化任务五下面字符数组的初始化正确吗?char

a[10],b[10;a[10]=“Happy!”b=Hello!【思考】字符数组-引用任务五用字符数组的下标指定要引用的数组元素。一维字符数组的引用格式:

数组名[下标]

二维字符数组的引用格式:

数组名[行下标][列下标]char

a[10],b[10;a[10]=“Happy!”字符数组-引用任务五【例】输出一个字符串。#include<stdio.h>main(){charc[10]={‘I’,‘└┘’,‘a’,‘m’,‘└┘’,‘h’,‘a’,‘p’,‘p’,‘y’};inti;for(i=0;i<10;i++)

printf(“%c”,c[i]);printf(“\n”);}

运行结果为:

Iamhappy字符数组的输入/输出任务五一维字符数组的输入/输出操作有三种方法。(1)以%c的格式逐个字符输入/输出charstr[6];inti;for(i=0;i<6;i++)scanf(“%c”,&str[i]); /*字符数组输入*/for(i=0;i<6;i++)printf(“%c”,str[i]);

/*字符数组输出*/字符数组的输入/输出任务五(2)以%s的格式将字符串作为一个整体输入/输出charstr[6];scanf(“%s”,str);

/*字符串输入*/printf(“%s”,str);

/*字符串输出*/【注意】1、字符数组名表示的是数组的首地址,所以以%s的格式输入/输出一个字符串时,字符数组名前面不能再加取地址符号“&”。2、空格、回车或Tab键是字符串输入结束的标志。charstr[13];scanf(“%s”,str);printf(“%s”,str); HelloWorld!↙Hello字符数组的输入/输出任务五【实例】用格式符%s将整个字符串一次输入/输出。#include<stdio.h>main(){charc[15];printf("Pleaseinputastring:\n");scanf("%s",c);printf("%s",c);}用字符数组名,不要加&输入串长度<数组维数遇空格或回车结束自动加‘\0’用字符数组名,遇‘\0’结束程序运行结果为:

Pleaseinputastring:abcdefghij<回车>abcdefghij字符数组的输入/输出任务五例字符串输入举例

How\0

are\0

you?\0

#include<stdio.h>main(){chara[15],b[5],c[5];

scanf("%s%s%s",a,b,c);

printf("a=%s\nb=%s\nc=%s\n",a,b,c);

scanf("%s",a);

printf("a=%s\n",a);}运行情况:输入:Howareyou?输出:a=Howb=arec=you?输入:Howareyou?输出:a=Howscanf中%s输入时,遇空格或回车结束运行情况:输入:Howareyou?字符数组的输入/输出任务五(3)使用字符串处理函数gets和puts把字符串作为一个整体输入/输出charstr[13];

gets(str);

puts(str);①使用gets函数将字符串整体进行输入时,系统自动在末尾添加一个‘\0’。②输入的字符串中若包含空格、Tab键等字符信息均能正常输入,仅以回车作为字符串输入结束的标志。③使用puts函数将字符串整体进行输出时,系统一旦遇到‘\0’便停止输出。HelloWorld!↙HelloWorld!技能实训1.

输出一个已知的字符串。解题思路:定义一个字符数组,并分别用“%c”、”%s”、gets、puts完成对此字符数组中的字符的输入和输出。练一练技能实训任务二技能实训1.

输出一个已知的字符串。解题思路:定义一个字符数组,并分别用“%c”、”%s”、gets、puts完成对此字符数组中的字符的输入和输出。练一练技能实训任务二#include<stdio.h>voidmain(){chara[5],b[5],c[5],d[15];scanf("%s%s%s%s",a,b,c,d);printf("%s%s%s%s\n",a,b,c,d);}1.输出一个已知的字符串技能实训任务二#include<stdio.h>intmain(){charc[15]={'I','','a','m','','a','','s','t','u','d','e','n','t','.'};

inti;for(i=0;i<15;i++)

printf("%c",c[i]);

printf("\n");return0;}技能实训2.输出字符数组中的元素。运行结果:CLangProgramFunny练一练技能实训任务二技能实训2.输出字符数组中的元素。练一练技能实训任务二#include<stdio.h>int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论