前言:在本章,将介绍几种非常好用的字符串函数,在某些与字符串相关的题目中,这些字符串函数会有意想不到的作用。
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:对哪里有问题的朋友,可以私聊跟我交流。最后,制作不易,希望朋友们给点点赞和关注。