计算机二级C语言 字符串.doc

上传人:re****.1 文档编号:563128321 上传时间:2023-06-20 格式:DOC 页数:16 大小:62.01KB
返回 下载 相关 举报
计算机二级C语言 字符串.doc_第1页
第1页 / 共16页
计算机二级C语言 字符串.doc_第2页
第2页 / 共16页
计算机二级C语言 字符串.doc_第3页
第3页 / 共16页
计算机二级C语言 字符串.doc_第4页
第4页 / 共16页
计算机二级C语言 字符串.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机二级C语言 字符串.doc》由会员分享,可在线阅读,更多相关《计算机二级C语言 字符串.doc(16页珍藏版)》请在金锄头文库上搜索。

1、第十章 字符串1.存放字符串(1)用一维字符数组存放字符串C语言对字符串的约定“abcd”存放:借助一维字符型数组存放 占空间: 4+1 实际长度:4C语言中字符串常量的约定1010.0a n 77 xaa“” “a” “sdfs” 0 自动加#define PI 3 .14159#defien N 6C语言中字符串常量给出的是地址值字符串常量实际可理解为一个一维字符型数组。但这个一维字符型数组没名字,C编译系统读取到这一串存储单元的首地址。字符串实际被隐含的处理为一个以0结尾的无名一维字符型数组。举例:char s10,*p; “abcd”s=”abcd”;s0=a;s1=b;s2=c;s3

2、=d;s4=0p=”abcd”; 首地址 一维字符数组和字符串的区别及其联系区别:字符数组:char a5; 5 任意的字符字符串: “abcd” 无名 0联系:字符型数组的最后一位位置存放0,则它可理解为字符串常量。 字符串为字符数组的特例。(2)用赋初值的方式将字符串写入一维字符数组中数组赋初值的方式“abcd” 4+1 char a4=a,b,c,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; 4char a=a,b,c,d,0; 5直接将字符串常量给

3、一维字符数组“abcd” 4+1char a4= “abcd”; 非法char a5=”abcd”;char a10=”abcd”; char a=”abcd”; 常用 总结:“abcd” 4+1char a=a,b,c,d,0;char a=”abcd”;char *p=”abcd”; (3)执行过程中将字符串写入一维字符数组中不可用赋值语句给字符数组整体赋一串字符“abcd”char a5;a=”abcd”; 非法char a5=”abcd”,b5;b=a; 非法 给字符数组逐个赋字符值,最后人为加入0“abcd” “fssdfsfsajdklasdl kldfladf”char a5;a

4、0=a;a1=b;a2=c;a3=d;a4=0;for(i=0;i4;i+) scanf(“%c”,&ai); abcdai=0; 人为输入 2.字符串与指针(1)赋初值时使指针指向一个字符串char *p=”abcd”; 首地址 char a=”abcd”,*p=a; (2)赋值运算(可执行语句中)使指针指向一个字符串char *p;p=”abcd”; char a=”abcd”,*p;p=a; (3)字符数组存放字符串和指针指向字符串间的区别char a=”abcd”; 内容char *p=”abcd”; 首地址a数组中:内容:可变 存储空间:固定p是一个指针变量:可指向其它地方3.字符串

5、的输入和输出单个字符处理(%c getchar.)整串处理可用%s “abcd”#includemain()char a5; int i; for(i=0;i4;i+) ai=getchar(); ai=0; abcd a0=a b c d 0 for(i=0;i4;i+) putchar(ai); abcd(1) 条件char a=”abcd”,*p=a;输入项:字符数组名,字符指针变量,字符数组元素的地址。存放的起始地址 scanf(“%s”,a); p &a1输出项可为:字符串常量,字符数组名,已指向字符串的字符指针变量。 输出的起始地址 printf(“%s”,”abcd”); a p

6、 (2)用%s整串输入和输出char a10,*p=a; “abcd”scanf(“%s”,a);输入:abcd存放:a0 a b c d 0printf(“%s”,&a1);显示: abcd bcd 使用%s时,空格和回车都将作为输入数据的间隔符而不能被读入。输入:ab cd存放:a0 a b 0显示: ab (3)调用gets.puts函数gets函数用来从键盘上读入字符串(包括空格符)char a10,*p=a; “abcd”gets(a); /* 字符数组名,字符数组元素的地址,字符指针变量 (存放字符串的起始地址)*/输入:abcd ab cd存放:a0 a b c d 0 a0 a

7、 b c d 0puts(&a1); /* 从a地址开始依次输出存储单元中的字符,直到遇到第一个0为止。(待输出串的起始地址)结束后自动换行。显示:abcd bcd ab cd b cd 4.字符串数组(1)二维数组可看做一个一维数组,字符串为一个一维字符数组,所以一个二维字符数组则可看做一个字符串数组char a1080;a: a0 a1.a9a0: a00.a079.行:最多可存放字符串的个数 列:字符串最大有效字符个数 二维字符数组赋初值及其普通存放形式char a5=”abcd”;char a34=“a”,”bb”,”ccc”;a00 a01 a02 a03a 0b b 0c c c

8、0a0a1a2a 0111122223333(2) 定义一个字符指针数组存放形式a0b b 0a1c c c 0a2char *a3=“a”,”bb”,”ccc”;char *p=”abcd”;字符指针数组中的每一个元素依次指向了一个串。5.字符串处理函数#include字符串复制函数 strcpy(s1,s2);将s2所指的串内容复制到s1所指的存储空间中,函数返回s1的值。char s1=”abcde”,*s2=”abc”;strcpy(s1,s2); “abc”#includefun(char *,char *);main()int i; char s120,s2=”abcd”; fun

9、(s1,s2); puts(s1);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为起始地址的字符串的长度,不包括0char s=”123450abc”printf(“%d”,strlen(s); 5 #includemain() char s=”123450abc” int i; for(i=0;si!=0;i+) ; printf(“%d”,i); 字符串连接函数 strcat(s1,s2)将s2所指的字符串的内容连

10、接到s1所指的字符串后面,函数返回s1的地址值char s1100=”abcde”,*s2=”abc”;srtcat(s1,s2); “abcdeabc” #includemain()char a10=”abc”; abccba int i,n=0,j; 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)abcabccfg“sdfs”“ab”“aasf”

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号