已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 8 章 字符与字符串,指针与字符串 字符串表示形式 用字符数组实现,例 main( ) char string=“I love China!”; printf(“%sn”,string); printf(“%sn”,string+7); ,用字符指针实现,例 main( ) char *string=“I love China!”; printf(“%sn”,string); string+=7; while(*string) putchar(string0); string+; ,字符指针初始化:把字符串首地址赋给string char *string; string=“I love China!”;,*string!=0,字符指针变量与字符数组 char *cp; 与 char str20; str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址 char str20; str=“I love China!”; () char *cp; cp=“I love China!”; () str是地址常量;cp是地址变量 cp接受键入字符串时,必须先开辟存储空间,例 char str10; scanf(“%s”,str); () 而 char *cp; scanf(“%s”, cp); (),改为: char *cp,str10; cp=str; scanf(“%s”,cp); (),字符串与数组关系 字符串用一维字符数组存放 字符数组具有一维数组的所有特点 数组名是指向数组首地址的地址常量 数组元素的引用方法可用指针法和下标法 数组名作函数参数是地址传递等 区别 存储格式:字符串结束标志 赋值方式与初始化 输入输出方式:%s %c,char str=“Hello!”; () char str=“Hello!”; () char str=H,e,l,l,o,!; () char *cp=“Hello”; () int a=1,2,3,4,5; () int *p=1,2,3,4,5; (),char str10,*cp; int a10,*p; str=“Hello”; () cp=“Hello!”; () a=1,2,3,4,5; () p=1,2,3,4,5; (),scanf(“%s”,str); printf(“%s”,str); gets(str); puts(str);,字符指针: char *p; p=“I am a student.”; 定义字符数组时,在编译时为数组分配内存。而定义一个指向字符的指针变量,则只分配一个存放指针变量的内存,指针变量“必须初始化后才能使用”。 char str10; scanf(“%s”,str); char *p; scanf(“%s”,p);,char *p; p=(char*)malloc(20); scanf(“%s”,p); free(p);,stdlib.h,1 .字符串拷贝函数strcpy() a) char *strcpy(char *s1, char *s2); 功能: 将s2所指向的字符串复制到s1所指向的字符数组中,然后返回s1的地址值。 eg. char *strcpy( *s1, *s2) char *s1, *s2; char *p,*q; p=s1;q=s2; while (*p+=*q+); return s1; ,2. 字符串连接函数strcat() a) char *strcat(char *s1, char *s2); 功能: 将s2字符串添加到s1字符串的后面,然后返回s1的地址值。 eg. char *strcat( *s1, *s2) char *s1, *s2; char *p=s1; while (*p!=0) p+; while (*p+=*s2+); return s1; ,3. 字符串比较函数strcmp() a) int strcmp(char *s1, char *s2); 功能:比较两个字符串大小.返回值为0,则串1=串2.返回值为正数,则串1串2.返回值为负数,则串1串2. eg. strcmp(char *s1, char *s2) while (*s1=*s2) if(*s1=0) return 0; s1+; s2+; return (*s1-*s2); ,(例)下列程序的输出结果是 main( ) char *p1,*p2,str50=“xyz“; p1=“abcd“; p2=“ABCD“; strcpy(str+2,strcat(p1+2,p2+1); printf(“%s“,str); A)xyabcAB B)abcABz C)ABabcz D)xycdBCD,函数库为ctype.h int isalpha(int ch) 若ch是字母(A-Z,a-z)返回非0值,否则返回0 int isalnum(int ch) 若ch是字母(A-Z,a-z)或数字(0-9) 返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字(0-9)返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母(a-z)返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格( ),水平制表符(t),回车符(r), 走纸换行(f),垂直制表符(v),换行符(n) 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母(A-Z)返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数(0-9,A-F,a-f)返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母(A-Z)返回相应的小写字母(a-z) int toupper(int ch) 若ch是小写字母(a-z)返回相应的大写字母(A-Z),函数库为stdlib.h double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数 int atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数 long atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数 char *ltoa(long value,char *string,int radix) 将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数 char *itoa(int value,char *string,int radix) 将整数value转换成字符串存入string,radix为转换时所用基数 int system(char *command) 将MSDOS命令command传递给DOS执行,str字符串操作函数 char stpcpy(char *dest,const char *src) 将字符串src复制到dest char strcat(char *dest,const char *src) 将字符串src添加到dest末尾 char strchr(const char *s,int c) 检索并返回字符c在字符串s中第一次出现的位置 int strcmp(const char *s1,const char *s2) 比较字符串s1与s2的大小,并返回s1-s2 char strcpy(char *dest,const char *src) 将字符串src复制到des,例: 建立给定范围的子目录 #include “stdio.h“ #include “stdlib.h“ #include “string.h“ main() char s110,s210,s20; int beg,end,i; puts(“begin:“); gets(s1); puts(“end:“); gets(s2); beg=atol(s1); end=atol(s2); for(i=beg;i=end;i+) strcpy(s,“md “); ltoa(i,s1,10); strcat(s,s1); system(s); ,/*编程题 请编一个函数int fun(* char ss),它的功能是:把ss字 符串中的字符按逆序存放。例如:若输入字符串为ABCDE FG,则逆置后的字符串为GFEDCBA。请勿改动主函数 main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。*/ #include #include #include int fun(char p) void main() char s80; printf(“nPlease enter a string:“); gets(s); fun(s); printf(“nThe new string is:“); puts(s); getch(); ,int fun(char p) int n,i,j; char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阻燃剂绿色替代技术研究-洞察与解读
- 研学游的安全教育课件
- 幼儿园交通安全课件
- 2025 三年级数学上册测量游戏教学课件
- 2026届上海市长宁区、嘉定区化学高一第一学期期末复习检测试题含解析
- 河南省平顶山市鲁山一中2026届化学高二第一学期期中考试模拟试题含解析
- 速效止血装备采购合同
- 2026届贵州省湄潭县湄江中学化学高一上期末监测试题含解析
- 贵州省第一学期小学四年级数学期末调研试卷
- 钢构厂房平方合同
- 2025广东东莞市樟木头镇招聘编外聘用人员14人笔试考试参考题库及答案解析
- 2025湖北随州北星汇能产业发展有限公司招聘延期笔试考试参考题库及答案解析
- 2025年及未来5年中国猴头菇深加工行业市场调研分析及投资前景预测报告
- 2025年某气调库建设项目可行性研究报告
- 辽宁省鞍山市海城市2025-2026学年七年级上学期道德与法治11月期中
- 施工管理人员年度培训考核试卷及答案
- 水处理加药系统调试详细实施方案
- 2026年东营科技职业学院单招综合素质考试题库附答案
- 铸铁机工岗前操作安全考核试卷含答案
- 七年级语文现代文阅读理解全套题
- 建筑工地安全管理检查清单
评论
0/150
提交评论