strcat 是 C 语言标准库中的一个函数 用于连接两个字符串 头文件<string.h>
char * strcat ( char * destination, const char * source );这个函数将字符串 sour 添加到目标字符串dest 的末尾,包括终止的空字符(’\0’)
目标字符串的 ’ \0 ’ 被源字符串的第一个字符覆盖, 而两者连接形成的新字符串末尾包含一个空字符。
且注意: 1.目标字符和源字符串串要有 ’ \0 ‘ (分别作为起点和终点) 2.目标空间足够大,若dest空间不足,会直接导致缓冲区溢出 3.目标空间要可修改 4.不可自己追加自己
#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;
}运行结果:

#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函数是C语言中的字符串比较函数 用于比较两个字符串的大小 头文件<string.h>
int strcmp ( const char * str1, const char * str2 );那么,strcmp该如何比较两字符串大小呢?
strcmp比较大小并不是比谁字符串长 而是一一比较对应位置的ASCLL值大小 一位一位的比较,直到决出大小
例如: “abe" 和 ”abcdefgh"相比,虽然后者更长 但是前者的第三位 ”e" > 后者的第三位 “c" 故 ”abc" 更大
返回一个整数值,表示字符串之间的关系:

1.若str1小于str2,则返回负整数,即小于0的数。 2.若str1和str2相等,则返回0。 3.若str1大于str2,则返回正整数,即大于0的数。
#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;
}运行结果:

代码:
#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.com/
本文有若有不足之处,希望各位兄弟们能给出宝贵的意见。谢谢大家!!!
新人,希望各位兄弟们能动动小手,三连走一走!!!支持一下(三连必回)
下一期我们讲解strncat、strcnmp、strncpy字符串函数!!!