- 11
- 0
- 约4.44千字
- 约 11页
- 2017-01-26 发布于湖北
- 举报
第六讲C语言字符与字符串摘要
前导程序 #includestdio.h #includestring.h #define DENSITY 62.4 int main(void) { float weight,volume; int size,letters; char name[40]; printf(Hi!Whats your first name?\n); scanf(%s,name); printf(%s,Whats your weight in pounds?\n,name); scanf(%f,weight); size=sizeof name; letters=strlen(name); volume=weight/DENSITY; printf(Well,%s,your volume is %2.2f cubic feet.\n,name,volume); printf(Also,your first name has %d letters.\n,letters); printf(And we have %d bytes to store it in.\n,size); return 0; } 程序说明 它使用一个数组(array)来存放一个字符串。这里,某人的名字被读进这个数组中。该数组是内存中一串连续的40个字节,其中每个字节都是可以存放一个字符值。 它使用%s转换说明符来处理字符串的输入和输出。请注意,在scanf()中,weight使用了前缀,而name没有(因为数组名name就是该数组的地址)。 它使用C函数strlen()来获取字符串的长度。 一、字符串简介 字符串(character string)就是一个或多个字符的序列。例如: Hi!Whats your first name?“ 双引号不是字符串的一部分,他们只是通知编译器其中包含了一个字符串,正如单引号标识着一个字符一样。 1.char数组和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char类型的数组中。字符串中的字符存放在相邻的存储单元中,每个字符占用一个单元;而数组由相邻存储单元组成,所以把字符串存储到数组中是很自然的,如下图所示。 H i ! W h a t s y o u r f i r s t n a m e ? \0 请注意,图中数组的最后一个位置显示字符\0。这个字符就是空字符,大多数时候计算机可以为我们自动添加这个\0。C用它来标记字符串的结束。空字符不是数字0,它是非打印字符,其ASCII码的值为0。C的字符串存储通常以这个空字符结束。该字符的存在意味着数组的单元数必须至少比要存储的字符数多1。 一、字符串简介 2.使用字符串 #includestdio.h int main(void) { char praise[30]=What a super marvelous name!,name[20]; printf(Whats your name?\n); scanf(%s,name); printf(Hello! %s, %s,name,praise); return 0; } %s告诉printf()要打印一个字符串。%s出现两次是因为该程序要打印两个字符串:一个被存储在name数组中,另一个存储在praise数组中。 你无须亲自把空字符插入name数组中。scanf()在读取输入时会自动完成这项任务,同样,也无需在字符串praise中包含一个空字符,编译器负责完成这一事情。 请注意,scanf()只读取了Michael Jordan的名字Michael。scanf()开始读取输入以后,会在遇到第一个空白字符(空格blank、制表符tab或者换行符newline)处停止读取。因此,它在遇到Michael Jordan之间的空格时,就停止了扫描。一般情况下,使用%s的scanf()只会把一个单词而不是把整个句子作为字符串读入。C使用其它读取输入函数(例如gets())来处理一般的字符串。 一、字符串简介 3.字符串和字符 字符串常量“x“与字符常量‘x’不同。一个区别是‘x’属于基本类型(char),而“x“则属于派生类型(char数组)。第二个区别是“x“实际上由两个字符( ‘x’ 和‘\0’ )组成,如下图所示。 x \0 x ‘x’是一个字符 “x“是一个字符串 一、字符串简介 4.strlen()函数 #includestdio.h #includestring.h #define PRAISE What a super marvelous name! int main(void) { char name[40]; printf(Wh
您可能关注的文档
- 第六章碱金属和碱土金属摘要.ppt
- 第六章真空成像器件摘要.ppt
- 第六章纳米材料摘要.ppt
- 第六章第二节抹灰工程摘要.ppt
- 第六章舰船电网短路计算摘要.ppt
- 第六章虚拟变量回归模型(最新)摘要.ppt
- 第六章货物的保险条款摘要.ppt
- 第六章资本成本财务杠杆11.6摘要.ppt
- 第六章质量和密度复习摘要.ppt
- 第六章输入输出和中断技术2摘要.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)