1.strlen
作用:计算字符串的长度
size_t strlen ( const char * str );
1.字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。2.参数指向的字符串必须要以 '\0' 结束。3.注意函数的返回值为size_t,是无符号的( 易错 )
下面我们既然知道strlen,我们便来自己模拟实现strlen函数
my_strlen(const char* str)
{
int sum = 0;
//遇到\0则停止
while (*str != '\0')
{
str++;
sum++;
}
return sum;
}
int main()
{
//定义一个数
char arr1[] = "abcde";
int ret = my_strlen(arr1);
printf("%d", ret);
return 0;
}
2. strcpy
作用:拷贝字符串
char* strcpy(char * destination, const char * source );
1.源字符串必须以 '\0' 结束。2.会将源字符串中的 '\0' 拷贝到目标空间。3.目标空间必须足够大,以确保能存放源字符串。4.目标空间必须可变。前面是目标空间,要将后面的字符拷贝到前面的空间中
下面我们既然知道strcpy原理了,我们便来自己模拟实现strcpy函数
//模拟实现strcpy
char*my_strcpy(char* str1, const char* str2)
{
//断言
assert(str1 && str2);
char* ret = str1;
//会将字符串的所有字符拷贝过去,包括\0
while (*str1++ = *str2++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = { 0 };
char arr2[] = "abcd";
my_strcpy(arr1, arr2);
printf("%s", arr1);
return 0;
}
3.strcat
作用:追加字符串
char * strcat ( char * destination, const char * source );
1.源字符串必须以 '\0' 结束。2.目标空间必须有足够的大,能容纳下源字符串的内容。3.目标空间必须可修改。4.并且不能给自己追加
原理:先找到目标空间的\0,然后开始拷贝
char*my_strcat(char* str1, const char* str2)
{
assert(str1 && str2);
char* ret = str1;
while (*str1 != 0)
{
str1++;
}
while (*str1++ = *str2++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "xxxxx";
char arr2[] = "abcd";
my_strcat(arr1, arr2);
printf("%s", arr1);
return 0;
}
4.strcmp
作用:比较字符串的大小
字符串的比较规则:
依次比较字符的ascll值。 例如:abcd(大)和abbbbb(小)
a b c d 大
| | | |
a b b b b b 小
与字符串的长短无关
然后大家可以看看这篇文章:初识C语言:strcmp函数(比较两个字符串的大小)_strcmp怎么比较字符串大小_元清加油的博客-CSDN博客