C基础_字符串处理函数

字符串处理函数

gets和puts
gets从标准设备上获取一个字符串,可以带空格,直到接收到换行字符或者字符串结束标志才停止(不安全)
puts从标准设备上输出一个字符串,这个字符串自带’\n’换行

fgets和fputs
fgets格式:fgets(字符指针 大小 流【stdin】)是安全,会接收固定大小的字符串
注意:1、如果接受少于大小 会将\n加入到字符串中
2、如果接收大于等于大小 不会将\n加入到字符串中 始终会将\0加入到字符串中

scanf("%d %d %d",&a,&b,&c);
printf("%.2f\n",3.1415);//3.14
printf("%5d\n",12);// 12
printf("%05d\n",12);//00012
printf("%4s\n",“ab”);// ab
printf("%.4s\n",“abcdef”);//abcd
printf("%-5df\n",12);//12

1、strlen函数:计算目标字符串长度,

格式:strlen(字符指针指向区域)
注意:
①不包含字符串结束符‘\0’
②需要导入库<string.h>

2.拷贝函数:strcpy 参数: 目标字符串 源字符串

格式strcpy(目标字符串 ,源字符串 );
注拷贝字符串时会将/0也拷贝
有限拷贝:strncpy 参数: 目标字符串 源字符串 字符长度
格式:strcpy(目标字符串 ,源字符串 ,长度);
成功:返回目标字符串的首地址
失败:NULL
注:有限拷贝不会将\0拷贝到目标字符串中,需要手动添加\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函数:

格式:strchr(字符串,‘字符’) // 失败返回空的值(UNLL)
注意 :
①找汉字时格式 “ 汉字 ”,是双引号非单引号
② 字符使用单引号引起来

7、在字符串中查找另外字符串的位置 strstr函数:

格式: strstr(源字符串,“匹配字符串”)
注意: 匹配字符串使用双引号引起来

8、字符串分割 strtok函数

格式 strtok(目标字符串,“目标字符串中所包含的字符”)
注意:
① 将切割点用\0表示,切完之后会破坏原先字符串样式
②当连续出现多个分割字符时只替换第一个为\0

9、atoi 转整形 /atof转 双精度 /atol转long类型 :

格式: atoi(目标字符串) / atof(目标字符串) / atol(目标字符串)
注意:跳过前面的空格字符,直到遇到数字或正负号才开始做转换,而遇到非数字或字符串结束符(’\0’)才结束转换

函数:

第一 函数的创建与定义

自定义格式:
返回值类型 函数名称(参数)
{函数体 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 接收传递从参数的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值