• 字符串函数(day11)


    使用存储区的地址作为返回值可以让调用
       函数使用被调用函数的存储区
    这种时候被调用函数需要提供一个指针类型
        的存储区记录作为返回值的地址数据
    不可以把非静态局部变量的地址作为返回值
       使用
    
    C语言里的文字信息必须记录在一组连续
        的字符类型存储区里
    所有文字信息必须以''字符做结尾,这个
       字符的ASCII码就是数字0
    符合以上两个特征的内容可以用来在C语言
       程序里表示文字信息,它们叫做字符串
    字符串里''字符前面的部分是有效字符
    所有字符串都可以采用字符类型指针表示
    
    字符串字面值是表示字符串的一种方法,
        用两个双引号中间包含的一组字符
        表示字符串字面值(例如"dsg","^*&*@"等)
    编译器在编译的时候会自动在字符串字面值的
        末尾追加''字符
    编译器会把字符串字面值替换成第一个字符
        所在存储区的地址
    字符串字面值的内容在程序执行过程中不
        可以改变
    程序里内容一样的字符串字面值是同一个
    多个并列的字符串字面值会被合并成一个
    
    字符数组也可以用来记录字符串
    只有包含''字符的字符数组才可以当作
        字符串使用
    可以使用字符串字面值对字符数组进行初始化,
        编译器会把字符串字面值里的''字符
        初始化到字符数组里
    字符数组里字符串内容可以修改
    
    在printf函数调用语句里使用%s做占位符可以
        把字符串里所有有效字符显示在屏幕上
    
    不可以使用操作符对字符串进行操作,应该
        使用一组标准函数
    为了使用这组标准函数需要包含string.h头文件
    strlen           用来统计字符串里有效字符
                     的个数
                     和sizeof关键字完全不同
    strcat           用来把两个字符串合并成
                     一个字符串
                     这个函数有可能修改不属于
                     数组的存储区,这会造成
                     严重错误
    strncat          功能和strcat函数类似
                     这个函数可以避免strcat的
                     错误
    strcmp           用来比较两个字符串的大小
                     根据字符ASCII码比较两个
                     字符串的大小
                     返回值是0表示两个字符串
                     一样大
                     返回值是1表示第一个参数
                     代表的字符串大
                     返回值是-1表示第二个参数
                     代表的字符串大
    strncmp          用来比较两个字符串前n个
                     字符的大小
    strcpy           用来把一个字符串的内容
                     复制到字符数组里
                     这个函数也可能修改不
                        属于数组的存储区,
                        这会造成严重错误
    strncpy          功能和strcpy类似
                     只复制字符串里前n个字符,
                        这样可以避免问题
                     有可能不复制''字符
    memset           用来把字符数组里多个
                      连续的字符类型存储区
                      内容设置成同一个字符
    strstr          从一个大字符串里查找
                      小字符串的位置
                    如果找不到就返回NULL
    
    以下两个函数不需要包含string.h头文件
    sprintf   把多个数字按照格式拼凑成
                字符串并记录到字符数组里
    sscanf    从字符串里获得多个数字并记录
                到存储区里
    
    以下两个函数需要包含stdlib.h头文件
    这两个函数可以把字符串里的数字转换
       成数字类型
    atoi       这个函数可以把字符串里开头
                的整数部分转换成整数类型
    atof       这个函数可以把字符串里开头
                的浮点数部分转换成双精度
                浮点类型
    
    在scanf函数调用语句里使用%s做占位符
        可以把用户在键盘上输入的字符串记录
        到字符数组里
    这种方法有可能造成严重问题
    
    fgets函数也可以把键盘上输入的字符串
        记录到字符数组里
    这个函数可以避免scanf函数的问题
    这个函数需要三个参数
    1.数组名称
    2.数组里的存储区个数
    3.用stdin表示键盘
    
    如果用户输入的内容不能把数组充满就把
        用户最后输入的回车当作'
    '字符也
        放到字符数组里
    如果用户输入的内容超过数组的范围就把
        多余的部分留在输入缓冲区里等
        下次读
    
    在每次使用fgets函数从键盘得到字符串以后
        都应该把可能存在的多余数据清理掉
    清理多余数据的语句应该放在分支里,分支
        要保证输入缓冲区里有多余数据的时候
        才进行清理
  • 相关阅读:
    linux开机启动服务配置
    流媒体服务器配置安装SRS及nginx+rtmp
    WEBRTC配置安装
    linux操作20200825
    转载流媒体服务器相关收藏
    RabbitMQ中间件使用
    如何查找删除指定进程
    硬件接口,串行比并行快的原因
    JavaBean+jsp开发模式 --结合form表单 实例
    session会话
  • 原文地址:https://www.cnblogs.com/Kernel001/p/7735179.html
Copyright © 2020-2023  润新知