常用字符串函数strcpy,strcat,strcmp

前言:在本章,将介绍几种非常好用的字符串函数,在某些与字符串相关的题目中,这些字符串函数会有意想不到的作用。

strcpy(字符串复制函数)

顾名思义,strcpy函数的作用就是复制字符串

cplusplus上介绍如下:在这里插入图片描述

由图可知它有两个参数,前一个为将被拷贝内容的目标数组,后一个为要复制的字符串,即将后一个字符串的内容拷贝给前一个目标数组。且源字符串的’\0’也会拷贝到目标空间里

举以下例子,方便大家了解:

#include<stdio.h>
#include<string.h>  //引用字符串函数头文件
int main()
{
	char arr[] = "abcdefg";   //arr为要复制的字符串
	char str[10] = { 0 };     //str为目标数组,赋初始值0
	strcpy(str, arr);         //使用strcpy函数
	printf("%s", str);        //打印str数组,看看输出什么?
	return 0;
}

输出:
在这里插入图片描述
通过输出结果,我们可以知道strcpy函数将arr数组的内容拷贝到str数组中了。

strcpy使用注意事项

1.源字符串必须以’\0’结束。
2.拷贝时会将源字符串的’\0’拷贝到目标空间(感兴趣的可用strlen检测试试)
3.目标空间必须足够大,以确保能存放源字符串,比如上面的例子目标数组占10个字节,源字符串占7个字节,可以存下。(若目标空间存不下,也可以拷贝,但系统会警告)
4.目标空间必须可变,比如常量字符串不可变

strcat(字符串连接函数)

strcat函数的作用是连接字符串

cplusplus介绍如下:
在这里插入图片描述

由图可知它有两个参数,前一个是目标字符串,后一个是要被追加(连接)的源字符串。
目标字符串的终止空字符(‘\0’)会被源字符串的第一个字符覆盖
一个终止空字符将会包含在两者组合成的新字符串的结尾

举以下例子,方便大家了解:

#include<stdio.h>
#include<string.h>    //引用字符串函数头文件
int main()
{
	char arr[10] = "abc";            //目标字符串
	char str[] = "defg";             //追加字符串
	printf("连接后:%s\n", arr);      //打印连接前的数组arr,与打印后的arr比较
	strcat(arr, str);                //使用strcat函数连接目标字符串和追加字符串
	printf("连接后:%s\n", arr);      //打印连接后的数组arr
	return 0;
}

输出:
在这里插入图片描述
通过输出结果,我们可以知道strcat函数将目标字符串和追加字符串连接到了一起

strcat使用注意事项

1.追加字符串必须以’\0’结束。
2.目标空间必须足够大,以确保能存放下追加字符串
3.目标空间可以修改
4.该函数不能实现自己给自己追加(朋友们可以想想为什么)(某些IDE中可以追加) 因篇幅原因将在下一篇文章中讲解 但可通过strncat函数实现自己给自己追加

strcmp(字符串比较函数)

strcmp的作用是比较两个字符串的大小

cpulsplus介绍如下:
在这里插入图片描述

由图可知,它有两个参数,即我们想进行比较的两个字符串(不分前后顺序)。

字符串比较规则

从第一个字符开始,比较其ASCII码值,若相等,则对应的第二个字符相互比较,以此类推,若前者大于后者,则返回一个大于0的数字,若前者小于后者,则返回一个小于0的数字,若两者相等,则返回0

strcmp的返回值图表

在这里插入图片描述

值得一提的是,在VS环境中,若前者大于后者,返回值固定是1,前者小于后者,返回值固定是-1.

举以下例子,方便大家了解:

#include<stdio.h>
#include<string.h>        //引用字符串函数头文件
int main()
{
	char arr1[] = "abc";    
	char arr2[] = "abc";
	char arr3[] = "abb";
	char arr4[] = "abd";
	printf("%d\n", strcmp(arr1, arr2));   
	printf("%d\n", strcmp(arr1, arr3));
	printf("%d\n", strcmp(arr1, arr4));
	return 0;
}

输出:
在这里插入图片描述

文末BB:对哪里有问题的朋友,可以私聊跟我交流。最后,制作不易,希望朋友们给点点赞和关注。
在这里插入图片描述

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溪读卖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值