11.字符介绍

数组做形式参数的时候真正的形式参数是一个指针
如果在函数中不会修改指针形参所捆绑的存储区则
    应该在指针形参前加const关键字


任何存储区的地址都可以作为实际参数和指针形参
    配合使用
使用指针形式参数可以让被调用函数使用其他函数的
    存储区


无类型指针的一个主要用途就是作为函数的形式参数
    使用


指针也可以作为函数的返回值使用,这种使用方法
    可以间接把多个数据通过返回值传递给调用函数


为了避免出现野指针绝不可以把局部变量或者块变量
    的地址赋值给指针类型的返回值存储区


C语言中所有文字信息都是用字符串表示的
字符串是由内存中一组连续的字符类型存储区构成的
字符串中使用'\0'字符表示有效字符的结束位置,这个
    字符的ASCII码就是数字0
所有字符串一定可以采用和第一个字符类型存储区捆绑的
    字符指针表示


字符串又可以分成两类,每类又有自己专门的表示方式


第一类可以使用字符串字面值的方式表示,例如"abc",
"^&&*^*"等
编译器会自动在字符串字面值后面加'\0'字符
字符串字面值表示的字符串被存储在一个专门的段落里,
    这个段落在程序运行的时候不可以被修改
同样内容的字符串字面值在程序运行过程中只会有一份
编译器会自动用第一个字符类型存储区的地址替换字符串
    字面值
如果把两个字符串字面值合并在一起则编译器会自动把
    它们合并成一个


字符数组也可以用来表示字符串
只要字符数组中包含'\0'字符就可以当字符串用
如果想把一个字符数组当字符串使用就必须在程序
    中向字符数组中放'\0'字符
可以在程序中使用字符串字面值对字符数组做初始化
使用字符串字面值对字符数组初始化完成后它们之间
    就没有关系了
字符数组里的字符串在程序运行过程中是可以被修改的


不可以使用操作符直接对字符串进行操作
C语言中提供了一组专门的标准函数,这些标准函数
    可以用来对字符串做各种处理
为了使用这些标准函数需要包含string.h文件内容
strlen             这个函数可以计算字符串中
                   有效字符的个数
strcat             这个函数可以把一个字符串的
                   内容合并到一个字符数组中原有
  字符串的末尾
                   字符数组最终会记录合并后的字符串
                   这个函数用返回值表示合并后的
  字符串
                   这个函数有可能修改不属于这个数组
  的存储区,因此它是有危险的
strncat            这个函数的功能和strcat类似
                   它比strcat函数多一个整数类型的
  参数,这个参数表示最多可以从
  后一个字符串中合并多少个字符
  内容到字符数组中
                   如果使用得当这个函数可以避免
  危险
(man 函数名   该语句可以查看函数的详细信息)
strcmp             这个函数可以比较两个字符串
                   是否一样
                   它把两个字符串对应位置上的字符
  进行ASCII码的比较
  ASCII码大的字符所在的字符串就
  叫大
                   这个函数通过返回值表示比较结果,
  如果前一个字符串大则返回1,如果
  后一个字符串大则返回-1,如果一样
  大则返回0
strncmp            这个函数也可以比较两个字符串的
                   大小,它比较的是前n个字符
                   它比strcmp多了一个整数类型的
  参数,这个参数表示要比较的
  字符个数
strcpy             这个函数可以把一个字符串复制到
                   一个字符数组中
                   这个函数的返回值可以表示复制得到
  的新字符串
strncpy            这个函数只会把后一个字符串中的
                   前n个字符复制到字符数组中
                   这样可以避免发生错误


可以使用%s作为占位符把一个字符串打印在屏幕上
可以使用%s做占位符在scanf语句中从键盘得到一个
    字符串并记录在一个字符数组中
和%s占位符对应的数据应该是数组名称,不需要再取
    地址了
使用这种方式从键盘获得字符串可能遇到两个问题:
1.如果输入内容中包含空格字符则只能获得空格字符
     前的内容
2.如果输入内容多于数组中存储区个数则会出现严重
    错误


fgets函数可以从任何文件中获得字符串
在Linux系统中键盘可以被当作文件看待,这个文件叫
    标准输入文件,用stdin表示
fgets函数需要三个参数
1.字符数组的名称(得到的字符串记录在这个数组中)
2.数组中包含的字符类型存储区个数
3.要读取的文件(stdin表示键盘)


这个函数有可能把输入时的回车字符也读入到字符
    数组中
scanf("%*[^\n]");
scanf("%*c");
在得到字符串以后要清理可能存在的垃圾数据(输入的字符过多就会有垃圾)
只有当字符数组中没有'\n'字符的时候才需要清理
    垃圾数据


预习:
        1.多个字符串的存储方式
2.指针数组和二级指针
3.文件操作相关函数


作业:
    1.编写函数实现strcat函数的功能
    2.编写程序把用户在键盘上输入的表达式结果
   计算出来并打印在屏幕上
(假设用户输入的表达式格式一定正确,
表达式中只包含加减符号,所有数字都是
整数,没有空格,第一个数字一定是正数,
计算过程中出现的所有数字都没有超过
整数类型的范围)
3.编写模拟登录程序
正确的用户名是admin
正确的密码是123456


给用户三次机会
如果三次都失败则提示登录 ,否则提示登录成功

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值