2022年2022年计算机二级C语言字符串 .pdf

上传人:Che****ry 文档编号:34877224 上传时间:2022-08-19 格式:PDF 页数:16 大小:91.30KB
返回 下载 相关 举报
2022年2022年计算机二级C语言字符串 .pdf_第1页
第1页 / 共16页
2022年2022年计算机二级C语言字符串 .pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2022年2022年计算机二级C语言字符串 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级C语言字符串 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第十章 字符串1.存放字符串(1)用一维字符数组存放字符串C 语言对字符串的约定“ abcd”存放:借助一维字符型数组存放占空间:4+1 实际长度: 4 C 语言中字符串常量的约定10 10.0 ,a?,n?,77?,xaa?“” “ a”“ sdfs ” ,0? 自动加#define PI 3 .14159 #defien N 6 C 语言中字符串常量给出的是地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 值字符串常量实

2、际可理解 为一个一维字符型数组。但这个一维字符型数组没名字, C 编译系统读取到这一串存储单元的首地址。字 符 串 实 际 被 隐 含 的 处 理 为 一 个以? 0? 结尾的无名一维字符型数组。举例:char s10,*p; “ abcd”s=” abcd” ; s0=? a? ; s1=? b? ; s2=? c? ; s3=? d? ; s4=? 0?p=” abcd” ; 首地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - -

3、- - 一维字符数组和字符串的区别及其联系区别:字符数组: char a5; 5 任意的字符字符串:“abcd” 无名 0 联系:字 符 型 数 组 的 最 后 一 位 位 置 存放? 0? ,则它可 理解为字符串常量。字符串为字符数组的特例。(2)用赋初值的方式将字符串写入一维字符数组中数组赋初值的方式“ abcd”4+1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - char a4=,a? ,? b? ,? c? ,?

4、d? ; char a5= ,a? ,? b? ,? c? ,? d? ; char a5= ,a? ,? b? ,? c? ,? d? ,? 0? ; char a10= ,a? ,? b? ,? c? ,? d? ; char a10= ,a? ,? b? ,? c? ,? d? ,? 0? ; char a=,a? ,? b? ,? c? ,? d? ; 4 char a=,a? ,? b? ,? c? ,? d? ,? 0? ; 5 直接将字符串常量给一维字符数组“ abcd”4+1 char a4= “ abcd” ; 非法char a5=” abcd” ; char a10=” a

5、bcd” ; char a=” abcd” ; 常用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 总结:“ abcd” 4+1 char a=,a? ,? b? ,? c? ,? d? ,? 0? ; char a=” abcd” ; char *p=” abcd” ; (3)执行过程中将字符串写入一维字符数组中不可用赋值语句给字符数组整体赋一串字符“ abcd”char a5; a=” abcd” ; 非法char a5=

6、” abcd” ,b5; b=a; 非法给字符数组逐个赋字符值,最后人为加入 ? 0?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - “ abcd”“ fssdfsfsajdklasdl kldfladf ”char a5; a0=? a? ; a1=? b? ; a2=? c? ; a3=? d? ; a4=? 0? ; for(i=0;i4;i+) scanf( “ %c” ,&ai); abcd ai=? 0? ; 人为

7、输入2.字符串与指针(1)赋初值时使指针指向一个字符串char *p=” abcd” ; 首地址char a=” abcd” ,*p=a; (2)赋值运算 (可执行语句中 )使指针指向一个字符串char *p; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - p=” abcd” ; char a=” abcd” ,*p; p=a; (3)字符数组存放字符串和指针指向字符串间的区别char a=” abcd” ; 内容char

8、*p=” abcd” ; 首地址a 数组中:内容:可变存储空间:固定p 是一个指针变量:可指向其它地方3.字符串的输入和输出单个字符处理 (%c getchar.) 整串处理可用 %s 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - “ abcd”#include main() char a5; int i; for(i=0;i4;i+) ai=getchar(); ai=? 0? ; abcd a0=? a?,b? , c?

9、,d?,0?for(i=0;i4;i+) putchar(ai); abcd (1) 条件char a=” abcd” ,*p=a; 输入项:字符数组名,字符指针变量,字符数组元素的地址。存放的起始地址scanf( “ %s” ,a); p &a1 输出项可为:字符串常量,字符数组名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 名,已指向字符串的字符指针变量。输出的起始地址printf(“ %s” ,” abcd” ); a

10、p (2)用%s 整串输入和输出char a10,*p=a; “ abcd”scanf( “ %s” ,a); 输入: abcd 存放: a0 ,a?,b?,c?,d?,0?printf(“ %s” ,&a1); 显示:abcd bcd 使用%s 时,空格和回车都将作为输入数据的间隔符而不能被读入。输入: ab cd 存放: a0 ,a?,b?,0?显示:ab 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - (3)调用 get

11、s.puts函数gets 函数用来从键盘上读入字符串(包括空格符 ) char a10,*p=a; “abcd”gets(a); /* 字符数组名,字符数组元素的地址,字符指针变量(存放字符串的起始地址 )*/ 输入: abcd ab cd 存放: a0 ,a?,b?,c?,d?,0?a0 ,a?,b?, , ,c?,d?,0?puts(&a1); /* 从 a 地址开始依次输出存储单元中的字符,直到遇到第一个 ? 0? 为止。(待输出串的起始地名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

12、 - 第 10 页,共 16 页 - - - - - - - - - 址)结束后自动换行。显示: abcd bcd ab cd b cd 4.字符串数组(1)二维数组可看做一个一维数组, 字符串为一个一维字符数组,所以一个二维字符数组则可看做一个字符串数组char a1080; a: a0 a1.a9 a0: a00.a079 . 行:最多可存放字符串的个数列:字符串最大有效字符个数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - -

13、 - 二维字符数组赋初值及其普通存放形式char a5=” abcd” ; char a34=“ a” ,” bb” ,” ccc ” ; a00 a01 a02 a03 a0 a1 a2 (2) 定义一个字符指针数组存放形式a0 a1 a2 char *a3=“ a” ,” bb” ,” ccc ” ; char *p=” abcd” ; a 0 b b 0 c c c 0 1111 2222 3333 a 0 b b 0 c c c 0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -

14、 第 12 页,共 16 页 - - - - - - - - - 字符指针数组中的每一个元素依次指向了一个串。5.字符串处理函数#include 字符串复制函数strcpy(s1,s2); 将 s2所指的串内容复制到s1所指的存储空间中,函数返回s1的值。char s1=” abcde ” ,*s2=” abc” ; strcpy(s1,s2); “ abc”#include fun(char *,char *); main() int i; char s120,s2= ” abcd” ; fun(s1,s2); puts(s1); 名师资料总结 - - -精品资料欢迎下载 - - - - -

15、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - fun(char *p,char *q) int i,j=0; for(i=0;qi;i+) pj+=qi; pj=? 0? ; while(*q!=? 0? ) *p+=*q+; *p=? 0? ; 字符串长度函数strlen(s) 计算出以 s为起始地址的字符串的长度,不包括 ? 0?char s=” 123450abc”printf(“%d” ,strlen(s); 5 名师资料总结 - - -精品资料欢迎下载 - - - - -

16、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - #include main() char s=” 123450abc ”int i; for(i=0;si!=? 0? ;i+) ; printf(“ %d” ,i); 字符串连接函数strcat(s1,s2) 将 s2 所指的字符串的内容连接到s1所指的字符串后面,函数返回 s1的地址值char s1100=” abcde” ,*s2=” abc” ; srtcat(s1,s2); “ abcdeabc ”#include main(

17、) char a10=” abc” ; abccba int i,n=0,j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - for(i=0;ai!= ? 0? ;i+) n+; for(j=n-1;j=0;j-) an+=aj; an=? 0? ; 字符串比较函数strcmp(s1,s2) 比较 s1和 s2所指的字符串的大小。依次对 s1和 s2对应位置上的字符比较大小。char *s1=” abcd” ,*s2=” abccfg ” ; strcmp(s1,s2) abc abccfg “ sdfs ”“ ab”“ aasf”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁