No.7 字符串处理函数和函数

字符串处理函数
1、strlen函数:计算目标字符串长度,
   格式:strlen(字符指针指向区域)
注意:①不包含字符串结束符‘\0’ 
         ②需要导入库<string>
 
2.拷贝函数:strcpy   参数: 目标字符串 源字符串
   格式strcpy(目标字符串 ,源字符串 );
 注拷贝字符串时会将/0也拷贝
 有限拷贝:strncpy   参数: 目标字符串  源字符串  字符长度
格式:strcpy(目标字符串 ,源字符串 ,长度);
成功:返回目标字符串的首地址
  失败:NULL
注:有限拷贝不会将\0拷贝到目标字符串中
 
3、追加函数/有限追加函数 strcat/strncat:
格式:strcat(目标字符串 ,源字符串) //  将源字符串连接到目标字符串的尾部
格式:strncat(目标字符串 ,源字符串,长度n)//将源字符串前n个连接到目标字符串的尾部
注:①被追加的目标字符串  需要有足够空间 
    ②追加中 先去掉 目标字符串中的 \0 再进行追加将 源字符串中的\0也追加上
③有限追加注意:有限追加也会将\0追加
 
 
4、比较函数/有限比较函数strcmp/strncmp
  格式:strcmp(字符串 1,字符串 2)// 比较1与2
  格式:strcmp(字符串 1,字符串 2,比较长度n) // 比较1与2前n个字符串
注: ①在不同操作系统中strcmp结果会不同 有的返回1  0 -1   还可能返回ASCII差值  
        ②字符串操作都是在\0结尾之前
 
5、字符串转化函数 sprintf  / sscanf:
数据格式化后放入在字符串中
格式: sprintf(目标字符串 ,"参数",源字符串 )// 根据参数将源字符串来转换并格式化数据,然后将结果输出到指定的目标字符串中
           scanf(目标字符串 ,"参数",&源字符串 ) //根据参数将源字符串来转换并格式化数据,然后将结果输入到指定的目标字符串中  
注意:①sscanf与scanf一样需要在程序开始加入警告
           ②成功时返回具体个数  失败 -1
 
6、在字符串中查找字符的位置 strchr函数:
  格式: strchar(字符串,‘字符’) // 失败返回空的值(UNLL)
    注意 :①找汉字时格式 “ 汉字 ”,是双引号非单引号 
               ② 字符使用单引号引起来
 
7、在字符串中查找另外字符串的位置 strstr函数:
    格式 strstr(源字符串,“匹配字符串”)
     注意: 匹配字符串使用双引号引起来
 
8、字符串分割 strtok函数 
格式  strtok(目标字符串,“目标字符串中所包含的字符”)
注意:① 将切割点用\0表示,切完之后会破坏原先字符串样式
                   ②当连续出现多个分割字符时只替换第一个为\0
 
 
9、atoi 转整形 /atof转 双精度 /atol转long类型 :
格式:  atoi(目标字符串)  / atof(目标字符串) / atol(目标字符串)
注意:①跳过前面的空格字符,直到遇到数字或正负号才开始做转换,而遇到非数字或字符串结束符('\0')才结束转换
   
函数:
函数的创建与定义
1、案例冒泡排序--------将两个冒泡程序提取相同部分 1 数组 元素个素 2 循环条件
2、创建名 函数名 , 格式  函数名(参数列表) {函数体} 图片:函数封装模块
 
自定义格式: 返回值类型  函数名称(参数) {函数体    return返回值}
 
注意 ①数组作为函数参数,可以退化为函数名/可以退化为指针 
②在定义函数时指定的形参,可有可无,根据函数的需要来设计,如果没有形参,圆括号内容为空,或写一个void关键字
③return后面的值也可以是一个表达式
 
 
程序执行流程:
 
1、函数调用时在未出现函数调用时,它们并不占内存中的存储单元
2、形参:函数的定义中的参数列表中的数据称为函数的形式参数 ,
3、实参:实际参数 ;
4、实参会影响会形参的值   形参不会影响实参的值  
4、理论机制:形参接收实参 在函数内部进行运算。
注意:实参会在函数执行完成在内存中会被释放掉 
 
 
函数的声明和调用
1、声明: 声明函数的类型 
 声明的作用则是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统
 
2、定义:函数的定义就是对函数公功能的实现
 
3、调用 :执行函数 需要完成某项功能   
 
注:①一个函数只能被定义一次,但可以声明多次
    ②函数定义的位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。
 
 
 
 
4、函数的返回值
①如果函数返回的类型和return语句中表达式的值不一致,则以函数返回类型为准,即 函数返回类型决定返回值的类型 。对数值型数据,可以自动进行类型转换。
注意:如果函数返回的类型和return语句中表达式的值不一致,而它又无法自动进行类型转换,程序则会报错。
 
5、函数的参数列表
 ①在定义函数时指定的形参,必须是,类型+变量的形式
 ②作用域不同和可以使用相同的变量名
 
6、return 和 exit(0)
  在main函数中调用exit和return结果是一样的,但在子函数中调用return只是代表子函数终止了,在子函数中调用exit,那么程序终止
 
 
 
 
 
函数分类 系统  用户定义  
作用:函数的使用可以省去重复代码的编写,降低代码重复率
 
函数名  见名知意
函数形参 不能给形参赋值
定义函数时 制定的形参 必须是  ,类型+变量的形式
 
 
函数的实参与形参
  • 形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。
  • 实参出现在主调函数中,进入被调函数后,实参也不能使用。
  • 实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。
  • 在调用函数时,编译系统临时给形参分配存储单元。调用结束后,形参单元被释放。
  • 实参单元与形参单元是不同的单元。调用结束后,形参单元被释放,函数调用结束返回主调函数后则不能再使用该形参变量。实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数中实参的值。
 
 函数样式:
 
1、有参无返回值  viod
2、有参数有返
3、无参无返 
注意:①如果是调用无参函数,则不能加上“实参”,但括号不能省略
②如果实参表列包含多个实参,则各参数间用逗号隔开
③实参与形参的个数应相等,类型应匹配(相同或赋值兼容)。实参与形参按顺序对应,一对一地传递数据。
 
 
多个文件联合编程
    1、在文件中函数都是全局函数
    2、文件 作用:1 函数变量的声明 2 系统库的调用 
    3、 vi 编译格式:gcc -o 可执行程序 文件1.c文件2.c 头文件.h
    4、#pragma once 头文件只包含一次
         #ifndef __SOMEFILE_H__
          #define  __SOMEFILE_H__
          #endif___SOMEFILE_H__
 
   5、程序被唤醒起来可以传递附带参数
   6、argc 接收传递参数的个数
   7、 argv 接收传递从参数的内容

猜你喜欢

转载自www.cnblogs.com/yangchenyu2000/p/10705715.html