第六讲二级C字符串
- 格式:ppt
- 大小:707.00 KB
- 文档页数:74
全国计算机二级C语言常考题型专题讲座字符串长度的计算方法提示:(1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。
所以,遇到反斜杠时要特别注意!!!1、不带转义字符的字符串如:“abc!x=/”,其长度为 72、带转义字符的字符串(1) 字符串“abc\n”:其中的'\n'为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而不是5)(2) 字符串“abc\n\\\'\"":其中有4个转义字符:'\n'(换行符)、'\\'(反斜杠)、'\''(单引号)、'\"'(双引号),所以该字符串的长度为7(而不是11)。
(3) 字符串“abc\0xyz”:其中有一个转义字符'\0',它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为3(而不是7)。
(4) 字符串“abc\\0xy”:其中有一个转义字符'\\'(反斜杠),这样,后面的字符串“0xy”照样计算,所以,该字符串的长度为7(而不是将第二个反斜杠与其后的0结合为一个转义字符'\0',若那样的话,第一个反斜杠将无法处理,因为一个转义字符总是由反斜杠加其他字符组成的,单独的一个反斜杠不能作为任何合法的字符)。
(5) 若将字符串“abc\\0xy”改为“abc\\\0xy”:则其中有二个转义字符'\\'(反斜杠)和'\0'(字符串结束符),这时,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是7)。
(6) 若将字符串“abc\\\0xy”改为“abc\\\061xy”:则其中有二个转义字符'\\'(反斜杠)和'\061'(ASCII码值等于061的字符,也即数字字符'1'),这时,当用函数strlen来测试该字符串的长度时,结果应该为7(而不是4或9)。
计算机二级C语言知识点(字符串)计算机二级C语言知识点(字符串)字符串与字符数组1.字符数组的定义定义方法与前面介绍的类似,只是将数组定义为字符型即可。
例如:charc[10];这里定义了一个包含10个元素的字符数组c。
2.字符数组的初始化对字符数组初始化,可以采用以下方法:(1)逐个字符赋给数组中各元素;(2)用字符串常量使字符数组初始化。
3.字符串在C语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中,故可以把字符型一维数组作为字符串变量。
字符串常量是用双引号括起来的一串字符。
C语言中约定用′\0′作为字符串的结束标志,它占内存空间,但不计入串的长度,′\0′的代码值为0。
系统对字符串常量也自动加一个′\0′作为结束符。
例如″clanguage″共有10个字符,但在内存中占11个字节,最后一个字节存放′\0′。
4.字符数组的输入输出(1)逐个字符输入和输出①在标准输入输出printf和scanf中使用%c格式描述符;②使用getchar和putchar函数。
例如:for(i=0;i10;i++)scanf(″%c″,str[i]);/*或str[i]=getchar();*/str[i]=′\0′;/*人为加上串结束标志*/for(i=0;i10;i++)printf(″%c″,str[i]);/*或putchar(str[i]);*/(2)字符串整体输入输出①在标准输入输出函数printf和scanf中使用%s格式描述符;输入形式:charstr[6];scanf(″%s″,str);其中str为字符数组名,代表着str字符数组的起始地址,输入时系统自动在每个字符串后加入结束符′\0′。
若同时输入多个字符串,则以空格或回车符分隔。
输入形式:printf(″%s″,str);输字符串时,遇第一个′\0′即结束。
但可人为控制输出串所占的域宽如:printf(″%6s″,str);/*若字符串中字符多于6个,仍将全部输出*/ printf(″%-6s″,str);/*只输出前6个字符,多余的不输出*/②使用gets和puts函数输入输出一行gets函数用来从终端键盘读字符,直到遇换行符为止,换行符不属字符串的内容。
第六章字符型数据1.字符型常量(1)普通字符常量:单引号括起来的一个字符,C语言中一个字符常量代表ASCII字符集中的一个字符,且有一个对应的ASCII 数值(字符在内存中以ASCII代码值形式存放)字符常量在内存中占一个字节,存放的是字符的ASCII代码值。
C语言规定,所有的字符常量都作为整型量来处理,在计算机内部,其对应的数值就是ASCII字符集中的字符序号。
(2)转义字符常量:反斜线后跟一个特定的字符,代表一个字符。
同样包含在单引号内。
\n回车换行光标回到下一行的首位置\r回车光标回到当前行的首位置\b 退格\f 换页符\t 横向跳格\v 竖向跳格\\ 输出\\' 输出'\" 输出"\0空值,其ASCII代码值为0 NULL \ddd1--3位的八进制数,代表一个ASCII字符‘\101’‘\0101’...\10‟ (010)‘\0‟‟\00‟\xff1--2位的十六进制,代表一个ASCII字符‘\x ab’…\x f‟总结:形式:‟a‟…A‟…0‟………*‟…\n‟…\022‟…\xa‟值:ASCII存放形式及其计算形式:ASCII(3)字符串常量:双引号括起来的一串字符。
C语言中系统在每个字符串后自动加入一个字符’\0’.作为字符串结束标志。
形式:“”空串“a”“aA01*\n\0777\xaa”存放:串结束标志\0字符串常量所占的内存空间: “”0+1 "a" 1+1 “01234”5+1 "sfsd\n\\\xa\v a\"" 10+1扩充:“12345\012345”(4)字符量进行运算:①大小写转换:A 65+0 a 97+0B 65+1 b 97+1C 65+2 c 97+2…….Z 65+25 c 97+25…0‟48+0…1‟48+1….…9‟48+9①32②基数+序列号=字符③大小写序列号相同加减32…A‟+32 ‘a‟…a‟-32 …A‟字符=基数+序列号大写字母ch求小写字母?已知:大写字母,小写基数求:小写字母小写字母=‟a‟+序列号ch-…A‟=‟a‟+(ch-…A‟)应用举例:大小字母间互相转换ch 小写-----大写ch-32…A‟+(ch-…a‟)要求把某一个小写字母转换为其后面的第一个字母“abcz”“bcda”“abxyz”“bcyza”ch0----24 1----2525 0if(ch>=‟a‟&&ch<=‟y‟)ch=ch+1;ch=‟a‟;0---22 3---25 %23 26-26 0 26%26 024 27-26 1 27%26 125 28-26 2 28%26 2 if(ch>=‟a‟&&ch<=‟w‟)ch=ch+3;if(ch==‟x‟) ch=‟a‟;if(ch==‟y‟) ch=‟b‟;if(ch==‟z‟) ch=‟c‟;if(ch>=‟a‟&&ch<=‟w‟)ch=ch+3;if(ch>=‟x‟&&ch<=‟z‟)ch=ch+3-26;ch=…a‟+(ch-…a‟+2)%26ch=‟a‟+(ch-…a‟-2+26)%26 “abcd”“zabc”2----25 0---230 24 (0-2+26)%261 252 03 1 (3-2+26)%264 2….25 23②数字字符与其对应数值间转换数字字符的对应数值为该数字字符在数字字符表里的序列号字符序列号数值…0‟0 0…1‟ 1 1…….…9‟9 9加减48…0‟-48 ? 0…9‟9字符-基数=对应的数值…0‟-…0‟?0…9‟-…0‟?9应用:123456789“1234”1234 4321取数组数ch …1‟ 1 1***** ****1 …2‟ 2 12*** ****21…3‟ 3 123** ***321…4‟ 4 1234 4321y=y*10+(ch-…0‟);{y=y+(ch-…0‟)*t; t=t*10;}③关系运算及其逻辑运算‘a‟>‟A‟ 1‘\0‟&&‟0‟0‘1‟||…0‟ 12.字符变量把字符放入字符变量中时,字符变量的值为该字符的ASCII值。
xx年全国计算机二级C语言知识点复习字符串【考点1】字符串常量及表示字符串常量是由双引号括起来的一串字符,如”ABC”。
在存储字符串时,系统会自动在其尾部加上一个空值’\0’,空值也要占用一个字节,也就是字符串”ABC”需要占四个字节。
【考点2】字符数组C语言没有字符串变量,只能采用字符数组来存储字符串。
数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放’\0’。
【考点3】字符串赋值字符串赋值的两种形式:char str[]=“Hello!”;或char *p;p=“Hello!”;,但不能用下面的形式:char str[10];str=”Hello”;因为str是一个地址常量,不能进行赋值操作。
【考点4】字符串的输入与输出可以用scanf和printf函数,如scanf(”%s”,str);,也可用专门处理字符串的两个函数gets和puts函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个’\0’。
使用gets函数可以接收空格,使用puts函数在最后输出一个换行。
scanf 和 gets 的数据:如果输入的是 good good study!那么scanf(“%s”,a); 只会接收 good. 考点:不可以接收空格。
gets(a); 会接收 good good study! 考点:可以接收空格。
【考点5】字符串函数要掌握的四个字符串函数:字符串拷贝函数strcpy(),求字符串长度函数strlen(),字符串链接函数strcat(),字符串比拟函数strcmp()。
使用这些函数需在预处理局部包含头文件”string.h”。
字符串长度要小于字符数组的长度,例:charstr[10]=”Hello”;sizeof(str)的值为10(数组长度),strlen(str)的值为5(字符串长度)。
这些函数是考试常用到的函数,大家一定要熟练应用这几个函数。