一、strcat
(1) 简介
strcat 是 C 语言标准库中的一个函数
用于连接两个字符串
头文件<string.h>
char * strcat ( char * destination, const char * source );
这个函数将字符串 sour 添加到目标字符串dest 的末尾,包括终止的空字符(’\0’)
目标字符串的 ’ \0 ’ 被源字符串的第一个字符覆盖,
而两者连接形成的新字符串末尾包含一个空字符。
(2)需要注意的点
且注意:
1.目标字符和源字符串串要有 ’ \0 ‘ (分别作为起点和终点)
2.目标空间足够大,若dest空间不足,会直接导致缓冲区溢出
3.目标空间要可修改
4.不可自己追加自己
(3)演示
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[20] = "Hello ";
// 要确保这个数组足够大
// 能够存放拼接后的字符串
char arr2[] = "World!";
strcat(arr1, arr2);
//将arr2拼接在arr1上
printf("%s\n\n", arr1);
return 0;
}
运行结果:
(4)模拟实现strcat函数
#include <stdio.h>
void my_strcat(char* dist, const char* sour)
{
while (*dist!='\0')
//从0开始追加
{
dist++;
}
while (*dist++ = *sour++)
//追加
{
;
//空语句
}
}
int main()
{
char arr1[20] = "Hello ";
// 要确保这个数组足够大
// 能够存放拼接后的字符串
char arr2[] = "World!";
my_strcat(arr1, arr2);
//将arr2拼接在arr1上
printf("%s\n\n", arr1);
return 0;
}
运行结果:
二、strcmp
(1) 简介
strcmp函数是C语言中的字符串比较函数
用于比较两个字符串的大小
头文件<string.h>
int strcmp ( const char * str1, const char * str2 );
(2)strcmp大小比较方法
那么,strcmp该如何比较两字符串大小呢?
strcmp比较大小并不是比谁字符串长
而是一一比较对应位置的ASCLL值大小
一位一位的比较,直到决出大小
例如:
“abe" 和 ”abcdefgh"相比,虽然后者更长
但是前者的第三位 ”e" > 后者的第三位 “c"
故 ”abc" 更大
(3)返回值
返回一个整数值,表示字符串之间的关系:
1.若str1小于str2,则返回负整数,即小于0的数。
2.若str1和str2相等,则返回0。
3.若str1大于str2,则返回正整数,即大于0的数。
(4)演示
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "abc";
char str2[] = "abcdef";
int ret = strcmp(str1, str2);
if (ret == 0)
printf("str1=str2\n\n");
else if (ret > 0)
printf("str1>str2\n\n");
else
printf("str1<str2\n\n");
return 0;
}
运行结果:
(5)模拟实现strcmp函数
代码:
#include <stdio.h>
int my_strcmp(const char* str1, const char* str2)
{
while (*str1 == *str2)
{
if (*str1 == '\0')
return 0;
str1++;
str2++;
}
return (*str1 - *str2);
}
int main()
{
char str1[] = "abe";
char str2[] = "abcdefgh";
int ret = my_strcmp(str1, str2);
if (ret == 0)
printf("str1=str2\n\n");
else if (ret > 0)
printf("str1>str2\n\n");
else
printf("str1<str2\n\n");
return 0;
}
运行结果:
三、结语
本期资料来自于
https://legacy.cplusplus.***/
本文有若有不足之处,希望各位兄弟们能给出宝贵的意见。谢谢大家!!!
新人,希望各位兄弟们能动动小手,三连走一走!!!支持一下(三连必回)
下一期我们讲解strncat、str***mp、strncpy字符串函数!!!