1、字符串与字符数组C语言程序设计C语言可以存储的数据计算机内存常量值变量值变量名变量名常量名常量名内存 score3score2score1score0score80659973数组数组名名C语言程序设计 字符串与字符数组C语言本次任务输入一个字符串,统计其中空格的个数。C语言程序设计 字符串与字符数组CONTENTS内容0101 任务分析0202相关知识0303任务实现与总结C语言任务分析输入字符串统计空格存储字符存储字符串 字符串输入空格统计完成任务输入字符串统计空格字符变量字符数组输入函数特殊标记字符串与字符数组-任务分析C语言字符串char a=W;char b=a;char c=n;c
2、har d=g;char e=L;char f=i;如何让程序存储我的姓名?Wang Li用若干个字符char name15=W,a,n,g,L,i,0;用字符数组用字符串WangLi0u 在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。u 字符串的末尾有一个空字符0数 组数组:是一种数据类型,在一块连续的地址空间内存储相同类型的多个值。字符串与字符数组-相关知识C语言u形式与前面介绍的数值数组相同。例如:char c10;u字符数组也可以是二维维数组。例如:char c510;字符数组的声明char arrayNamesize;类型说明符char数组名符合标识符规则常量表达
3、式:数组大小字符串与字符数组-相关知识C语言字符数组的初始化将字符串“c program”赋值给字符数组c。u 逐一元素赋值例如:char c10;c0=c;c1=p;c8=m;u 定义时作初始化赋值例如:char c10=c,p,r,o,g,r,a,m;u 当对全体元素赋初值时也可以省去长度说明例如:char c=c,p,r,o,g,r,a,m;语言允许用字符串的方式对数组作初始化赋值。可写为:char c=“c program;或去掉写为:char c=“c program;u 字符串以0 作为串的结束符。u 用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志 0 。0
4、是由C编译系统自动加上的。u 由于采用了 0标志,所以在用字符串赋初值时一般无须指定数组的长度,而由系统自行处理字符结束符字符串与字符数组-相关知识C语言1、数组必须先定义,后使用2、数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式3、数组的引用不能越界4、只能逐个引用数组元素,不能一次引用整个数组(字符这条不成立)。字符数组的引用#include stdio.hmain()char st15;printf(请输入要存储到字符数组中的值:n);scanf(%s,st);printf(字符数组中的值是n%sn,st);案例c cp pr ro og gr ra am mc0c1c2c
5、3c4c5c6c7c8字符串与字符数组-相关知识C语言字符数组的输入#include stdio.hmain()char st15;printf(请输入要存储到字符数组中的值:n);scanf(%s,st);printf(字符数组中的值是n%sn,st);案例输入连续的值输入连续的值输入带空格的值输入带空格的值注意:当用scanf函数输入字符串时,串中不能含有空格,否则将以空格作为串的结束符。字符串与字符数组-相关知识C语言char name10;scanf(%s,name);printf(%s,name);格式描述串中使用转换字符串“%s”Wang LiWang0使用 scanf 时,不能输
6、入空格Wang标准的I/O函数字符串与字符数组-相关知识C语言char name10;gets(name);puts(name);W angLi0Wang LiWang Li从键盘上读入一个完整的行,存入字符数组name。并用空字符0取代行尾的换行符n。把字符数组中的字符串输出到显示器。使用 gets函数允许输入空格字符串的I/O函数字符串与字符数组-相关知识C语言#include void main()char line30;int i,count=0;printf(n 请输入一行字符:n);gets(line);i=0;while(linei!=0)if(linei=)count+;i+;printf(n 其中的空格总数为%d n,count);C is a programming language在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i 和 count。其中的空格总数为 4任务实现字符串与字符数组-任务实现1、任务提出与分析2.字符数组的使用3.字符数组的输入输出4.任务完成与总结