C语言库函数———string.h库中常考重点梳理内容扩展全面(考试必会)puts/gets/strcat/strcpy/strncpy/strlen/strlwr/strupr

以下函数均包含在头文件<string.h>中,使用时需声明


1、puts与gets函数

作用:输出/输入 字符串

实现:puts(str1);

               gets(str1);
961944a200b94fb7be13252769e9152e.png

 //str1已定义

No.1区别putchar与getchar

putchar/getchar     用于字符串

puts/gets        用于单个字符

实现上:getchar作用于单个字符要前赋

word =getchar();1c9d967676974aeebc58d44e7c8e9ff3.png

 //word已定义

相同点:一次只能处理一个字符/字符串

(补充一点,scanf函数在指针中用时,输入的导向不能是无内存空间,即需指向值)在二维指针数组中值得注意

补充由于gets在读取时不判断界,所以不安全,在有些高级开发软件不支持,可以用其他方式代替

0544d8b796dc47e89b1afe6d720ab0a7.png

fb8c85c4c2444273ae2065b160d9a217.png 

以上为补充 

No.2区别于scanf/printf函数

printf函数与puts基本相同,但puts还会将字符串尾'\0'转化为'\n',而printf中%s后的对象可以是地址。

scanf函数相比puts具有局限性,scanf函数会将' '(空格)转化为'\0',所以字符串中有空格的不适用scanf输入。

补充:scanf("%[^\n]%*c",str);

可以解决这个问题,%[]等价于%s带条件^是非的意思\n为回车%*c为缓冲区存一个字符

2、strcat (字符串连接)

strcat(str1,str2);

作用:将str2中内容连在str1中(从 \0开始,包括\0)

实现:strcat(str1,str2);

8649501ac48c48dc99df9347e8fd2a94.png

 *输出:I like study

注意str2位置也可以直接填字符串“study”

前提:str1足够大

3、strcpy与strncpy(字符串复制)

No.1 strcpy函数

特点:将'\0’前(包括‘\0’一起复制到对象中去)
一般多用于交换字符串内容(不可直接“=”)即使换后内容不一定与原来完全相同。但存在'\0'输出时只输出互换内容。

实现:strcpy(str1,str2);

No.2 strncpy 函数

n<字符串长度(不包括‘\0’)
[但包括\0'就会将'\0'也代入]那与strcpy无差别

实现:strncmp(str1,str2,n);

将str2 n个前的字符复制到str1中

*同样str2位置也可以直接填字符串

4、strcmp(字符串比较)

实现:strcmp(str1,str2)按ASCII比

返回值3a50aa2ade3549a89e84110a24188988.png

注意:str1与str2的位置均可以直接填字符串

5、strlen(字符串长度)

实现 strlen(str1);

特点:不计算'\0',或说算到'\0'过

printf(“%d”,strlen(str1));

副录:strcat的实现(原理)

e6344063d02646399ad101ba43fa82bb.png 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值